>>3360 yoshi Windows98 上で FTP サーバを動かせば可能です。デフォルトでは FTP サーバは用意されていないでしょう。フリー物がよければ http://www.forest.impress.co.jp/library/tinyftpd.html などがよさそうに見えます。 なので、UNIX マシンに FTP でログインできるのも、 「その UNIX マシン上で FTP サーバが動いているからログインできる」 ということです。 |
はじめまして。 UNIXのことについて色々調べていたらこちらにたどり着きました。 以後よろしくお願い致します。 Tarコマンドについて質問があるのですが、 Tarコマンドのディレクトリ数の指定パラメータで 「.」と「./*」があり、 「./*」で指定した場合、ディレクトリ数の上限値があるそう なのですが、その値はいくつなのでしょうか? よろしければ教えてください。 |
>>3361 68user ありがとう御座いました! そういう事だったのすね、早速やってみます! |
>>3361 68user 間違えて、書き込んでいる途中で送信してしまいました・・。 しかも脱字でした、すみません。 ×そういう事だったのすね → ○そういう事だったのですね 家では実験できないので、会社で試してみるつもりです。 結果が分かり次第、報告させて頂きます! |
>>3352 落合 http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse を読んだ後に cgi-ml で得た情報をコッチにも提供して欲しい気持ち。 >>3359 68user > my ($ID, $name, $old) = split($_, '<>'); split の引数が逆ですぜ。 |
>>3362 しん > Tarコマンドのディレクトリ数の指定パラメータで > 「.」と「./*」があり、 > 「./*」で指定した場合、ディレクトリ数の上限値があるそう > なのですが、その値はいくつなのでしょうか? 「ディレクトリ数の指定パラメータ」というくだりが いまいち よくわかりませんが、要は % tar cf /foo/bar.tar . だとエラーにならないのに、 % tar cf /foo/bar.tar ./* だとエラーになるのはなぜか、ということでしょうか? であれば http://www.jp.freebsd.org/QandA/HTML/2111.html をどうぞ。 ちなみに ARG_MAX は FreeBSD なら 64KB ですが、Solaris は 1MB です。手元の Linux マシンを見てみると 128KB でしたが、 ディストリビューションごとに異なる可能性はあります。 |
>>3365 /tk > を読んだ後に cgi-ml で得た情報をコッチにも提供して欲しい気持ち。 http://script.lovely.to/bbs/infolng.cgi?print+200309/03090012.txt には報告して、こっちには報告してくれないのは嫌われている からでしょうか。 って、どうせもう読んでないだろうからどうでもいいんですが。 最近は返事がなくても、クイズのつもりで回答しています。 悟りの境地に達したのかもしれない。 >> my ($ID, $name, $old) = split($_, '<>'); > split の引数が逆ですぜ。 おっと失礼しました。 my ($ID, $name, $old) = split('<>', $_); ですね。 |
ftp上のlsの挙動に関する質問です。 ftpサーバのOSはSolaris9です。 Bシェルでクライアント側のプログラムを作成しています。 ftp上で下記のようにワイルドカードでファイルを指定し、その結果をlsresult.txtファイルに出力しようとしています。 ftp>ls ?????.txt lsresult.txt しかし、?????.txtに該当するファイルが無いと、クライアント側にはlsresult.txtファイルが作成されません。 様々な挙動調査の結果、lsを行うディレクトリがrootユーザーのものだとlsresult.txt自体が作成されませんが、一般ユーザーだと0バイトのlsresult.txtが作成されるという挙動の差異がありました。 lsに該当するファイルがなかった時に表示される「No such file or directory」というメッセージがlsresult.txtに出力される事を期待していますが、そのメッセージが応答されていないようです。 また、プログラムからでなく、コマンドラインから同じ事をしても同様の挙動でした。 なお、Solaris8等の他のマシンで動作確認したところ、lsに該当するファイルが無い場合には、lsresult.txtに「No such file or directory」のエラーメッセージが出力されました。 エラーメッセージの出力に関する設定、ftpdの違い、OSの違い等、疑うところはいろいろあるのですが、ftp上のls自体は機種等の環境に依存してしまうものでしょうか。 上記の説明で何が問題か分かりますでしょうか。 よろしくお願い致します。 |
>>3368 gaji ftp サーバの OS は Solaris9 だと言うことはわかりましたが、 クライアント側の環境は何ですか? ftp プロトコル自体には結果をファイルに落とすかどうかという やりとりはありません。よって、ファイルに落とすか処理を行なう のはクライアント側です。まずはクライアント側の環境を疑った 方がよいと思います。 > lsを行うディレクトリがrootユーザーのものだとlsresult.txt自体が > 作成されませんが、一般ユーザーだと0バイトのlsresult.txtが作成 > されるという挙動の差異がありました。 「ls を行うディレクトリ」というのは、 ftp> cd /hoge ftp> lcd /fuga ftp> ls ?????.txt lsresult.txt としたときの「/hoge」のことを指していますか? それとも「/fuga」の ことを指していますか? また、ftp クライアントを実行するユーザの違いで挙動が変わりますか? |
>>3369 68user 早速回答いただきましてありがとうございます。 今、お答えできる情報のみで申し訳ありませんが回答致します。 >ftp サーバの OS は Solaris9 だと言うことはわかりましたが、 >クライアント側の環境は何ですか? Solaris2.6です。 >「ls を行うディレクトリ」というのは、 > ftp> cd /hoge > ftp> lcd /fuga > ftp> ls ?????.txt lsresult.txt >としたときの「/hoge」のことを指していますか? それとも「/fuga」>のことを指していますか? /hogeの事を指しております。 クライアント側は同じ状態にしておいて、FTPサーバ側をいろいろ変えて挙動が変換するので、サーバ側の問題かと思っていましたが、クライアント側も調べてみます。 |
>>3370 gaji ftpのlsを調査した結果、以下の事が分かりました。 ---------Solaris8がFTPサーバの時---------------------------- ftp> ls ?????.txt local.txt 200 PORT command successful. 150 ASCII data connection for /bin/ls (192.168.122.8,45207) (0 bytes). 226 ASCII Transfer complete. local: local.txt remote: ?????.txt 49 bytes received in 0.012 seconds (3.90 Kbytes/s) ---------Solaris9がFTPサーバの時---------------------------- ftp> ls ?????.txt local.txt 200 PORT command successful. 550 ?????.txt: No such file or directory. Solaris8のケースでは、/bin/lsによって処理されて、該当ファイルが存在しなくてもlocal.txtが作成され、中にエラーメッセージが出力されました。 Solaris9のケースでは、/bin/lsを使用していない?様です。 ftpdの内部コマンドで処理されているのでしょうか。 この場合は、local.txtが作成されていません。 ちなみに、ftp上でls -a等を行うと、Solaris8,9共に/bin/lsで処理されているようです。 lsとls -aでは、FTPプロトコルはNLSTとLISTのように違うと思いますが、インターネットで調べた限りでは「ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで処理される事が多い。」との記述がありました。しかし、今回のケースではSolaris8でのlsは/bin/lsで処理されているようです。ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは設定可能なものでしょうか。 もし、Solaris9でのlsも/bin/lsを使用するように設定変更可能なものであれば、設定変更して動作検証したいと思います。 もし、ご存知でしたらご教授いただきたいと思います。 |
>>3371 gaji なるほど、ftpd の挙動が変わったのですね。 > ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで > 処理される事が多い。 そういう実装が多かった、というのは確かかもしれません。 ただ、ProFTPD のように /bin/ls に一切頼らない ftp サーバもありますので、あくまで「多かった」という程度 だと思います。 > ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは > 設定可能なものでしょうか。 Solaris8, Solaris9 の ftpd を見る限りでは、そのような 設定はできないようです。 http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.8&format=html http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.9&format=html > ftp> ls ?????.txt local.txt > 200 PORT command successful. > 550 ?????.txt: No such file or directory. もしクライアント側が LIST を発行しているとしたら (ftp -d で確認できます)、LIST に対して 550 を返すのは RFC 違反ではないかなぁと思いました。 http://hp.vector.co.jp/authors/VA002682/rfc959j.htm より引用 以下の表では、それぞれのコマンドごとの成功・失敗の応答を一覧表にしてあ る。これらは、確実に忠実でなくてはならない。サーバーは応答中の文章を変更 してもよいが、その意味、コード番号により示される動作と指定されたコマンド 応答シーケンスは変更してはならない。 コマンド応答シーケンス LIST 125, 150 226, 250 425, 426, 451 450 500, 501, 502, 421, 530 この解釈が正しいなら、Sun に文句を言えば直してくれる かもしれません。 ただ、ftp は規格が曖昧で、実装依存の塊みたいなものなので、 ls してクライアント側で grep した方が後々のためにもよい かもしれません。ファイルに落として grep するとか、 ftp> ls . "|grep ^.....\.txt$ >hoge" とするとか。 |
>>3361 68user 68userさんのご助言通り、 ftpサーバをPCに入れてみました所、上手くいきました。 ありがとう御座いました! |
>>3371 gaji 確か、Solaris9からwu-ftpdベースになっている筈です。 以下man ftpaccess(4)から... /etc/ftpd/ftpaccess lslong /usr/bin/ls lsshort /usr/bin/ls lsplain /usr/bin/ls 上記3行を追加してみては如何でしょうか... 外していたらごめなさい。 ではでは |
>>3374 とーりすがり 情報の提供ありがとうございます。 試してみたいと思います。 >確か、Solaris9からwu-ftpdベースになっている筈です。 これは、私も何かの書籍で見た記憶があります。 また、何か情報がございましたらお願いします。 |
イーサカード(hme等)のインスタンス番号についてご教授ください。 hme0と認識されているカードをカード実装位置を変えずにhme5のようにインスタンス番号のみ変更することは可能でしょうか? |
送信サーバ認証が不要な SMTPサーバではサーバ外メール送信は実現できています。 しかし、送信サーバ認証が必要な SMTPサーバではサーバ外メールを送信できません。(Outlook Express ではサーバ外メール送信OK) SMTP AUTH と POP Before SMTP を試しました。 SMTP AUTH は NONE-SUPPORT のメッセージが返りました。 POP Before SMTP として、POPサーバに USER と PASS コマンドを使い認証を受けた後(正常終了)で QUIT の直後に、SMTPサーバ にconnectし、HELO, MAIL FROM: とコマンドを送信し、RCPT TO: で 550 5.7.1 と Relay エラーを出してしまいます。 POP Before SMTP を実現するためのコマンドシーケンスを教えてください。 VC++ 6.0 Windows98SE 宜しくお願い致します。 |
関数にリダイレクションを引数として渡したいのですが どうも上手くいきません。ご教示お願いいたします。(OS:HPUX) KANNSUU(){ echo "A" $1 tmp.txt } KANNSUU > 結果:"A > tmp.txt"と表示されてしまう。 |
>>3374 とーりすがり > 確か、Solaris9からwu-ftpdベースになっている筈です。 おお、ほんとうですね。 http://docs.sun.com/db/doc/816-3965/6ma7896j8?l=ja&q=wu-ftpd&a=view 知りませんでした。 ってゆーか、まわりに Solaris9 環境がなかったりするんですけどね。 >>3376 新米 > hme0と認識されているカードをカード実装位置を変えずにhme5の > ようにインスタンス番号のみ変更することは可能でしょうか? (Solaris かどうか書いてないのでわかりませんが) Solaris の ifconfig はいろんな設定ができるので、できるかもしれませんし、 できないかもしれません。 >>3377 foofoo > POP Before SMTP を実現するためのコマンドシーケンスを教えてください。 POP でアクセスすればそれでよいはずです。 その前に、調べ方が効率悪すぎです。 まずはサーバがどういう認証方法を取っているか調べましょう。それが できないなら、ethereal などのパケットアナライザを使って、Outlook が どういうふうに接続しているか調べましょう。 >>3378 リダイレクションを引きとして渡す eval を使って KANSUU(){ eval "echo 'A' $1 tmp.txt" } とします。しかし、そのうちメッセージやファイル名に空白や シングルクォート・ダブルクォートが入ってたら〜とかいう 話になると思うので、 KANSUU(){ if [ $2 = 0 ]; # file 出力モード echo $1 > tmp.txt else # 標準出力モード echo $1 fi } 的な書き方をお勧めしておきます。 |
>>3379 さん、ありがとうございました。 > POP でアクセスすればそれでよいはずです。 何かが悪いのでしょうが、前の記述通り、POP から SMTP の切替て RCPT TO:で 550 が発生してしまいます。 うまく行っている Outlook を ethereal でトレースしようと思います。 ethereal のようなトレースツールも知りたかったので大変うれしく思っています。 早速 ethereal をダウンロードしてトレースしてみます。 テスト後ご報告致します。 foofoo |
>>3379 68user 68userさん、大変ありがとうございました。 etherealを使いトレースしたところ、Outlook Expressは、POP Before SMTP ではなく、AUTH LOGIN コマンドを使っていることがわかりました。 < EHLO xnn000<CR><LF> > 250 < AUTH LOGIN > 334,334,235 < MAIL FROM: > 250 : : Outlook Expressと同じ手順でOKにはなりました。 新たに不明な点が出てきました。 AUTH LOGIN の前に発行するEHLO に不明なアドレスのパラメータがついていました。 そのアドレスは、レジストリーで調査してもWindowsに設定されたアドレスでもなく、Outlook Express の設定の中にも無い下記のようなアドレスでした。 EHLO xnn000<CR><LF> 注:x:a〜zまでの内の1文字 nn:00〜99までの数字 所持メールアドレスは、送信メールサーバで認証の必要なものは1つしか持ち合わせがないため、他のメールサーバの時にどうなるかを確認できません。 このアドレスの根拠についてご存知の方、教えてください。 宜しくお願いします。 |
>>3381 foofoo 記載ミス 失礼しました、コマンドを統一表記していませんでした。 EHLO 以外も、Trailer として <CR><LF> は全て付加されています。 |
お久しぶりです。質問です。 さいきん MovableType に手を染めたのですが、 結構快調に使えていたんですが、rebuild 時に 500 Internal Server Error になるようになりました。 ずっとエラーになっても、再構築はできてたっぽかったんですが、 このたびついに再構築じたいできなくなりました。 (いつまでたっても古いページのまま) ドキュメントを見ると index.html を index.html.new に 退避してから書き込み動作を行い、 それが終わったら new を index.html に変名するような仕様に なっているが、この場合 mt ルートディレクトリののパーミッションが 777 になってないといけない、とあったので、 みてみると、たしかに 755 だったので、777 にすると、 今度は書き込み動作をしようとするといきなり 500 になりました。 あわてて 755 に戻すと、書き込み動作時のエラーはなくなりましたが、 相変わらず再構築時にエラーになります。 で、ドキュメントに、index.html.new を作らない設定にするには mt.cfg の NoTempFiles 1 を非コメント化するようにと言われたので、 しましたが、効きません。 なお、ルートには確かに index.html と index.html.new があって、 index.html のタイムスタンプは最後に再構築できたときです。 パーミッションは両方 666 です。 Perl は 5.005_03、 UNIX は FreeBSD 4.5-RELEASE-p36 #2 です。何かわかりましたら教えてください。 あと、板違いの場合はよさげな板を教えてくだされば幸甚です。 よろしくお願いします。 |
<<3383 ティピカルな問題かも。 http://www2h.biglobe.ne.jp/~hnakamur/technolab/diary/2003/20030810.htm system 'ulimit'; とかどっかに入れたろか ;;; |
>>3381 foofoo > EHLO xnn000<CR><LF> > 注:x:a〜zまでの内の1文字 nn:00〜99までの数字 これについてはわかりません。 http://www.puni.net/~mimori/smtp/ref.html#ehlo には SMTPサーバは、実際にはTCP/IP接続のIPアドレスなどの情報から クライアントを識別すべきである。 とあるので、Outlook Express はあえて適当なホスト名を生成して いるのかもしれません。 自分の FQDN を知っているならそれを、知らないなら IP アドレスを 渡しておけばいいのではないでしょうか。 >>3383 ふくし > rebuild 時に 500 Internal Server Error になるようになりました これだけでは「理由はわからないがエラーになる」と言っているのと 同じなので、原因を調べましょう。 - web サーバのエラーログには何と出ているか - CGI として起動したときの truss や ktrace の結果はどうなるか - コマンドラインから実行するとこけるか もし原因が limit である可能性が濃いなら、さらに以下のことを 調べましょう。 - CGI として起動したときの limit 値は (apache なら設定ファイルに書いてあるかも) - コマンドラインから起動したときの limit 値 (シェルの limit 値) は - ソフトリミットか、ハードリミットか (ハードリミットなら変更不可) - suid などで他の権限になれるか。なれるとしたらそのリミット値は? - なぜこけるのか。 手元の Solaris で試した限りでは、 - datasize の制限なら、malloc(3) して、brk(2) したときに ENOMEM が返ってきてこける - stacksize の制限なら、segmentation fault でこける。 となりました。FreeBSD でも同じかどうかはわかりません。 > system 'ulimit'; とかどっかに入れたろか ;;; これだと子プロセスのシェルの limit 値は変わるかもしれませんが、 自分自身の limit 値は変わりません。 CPAN から setrlimit(2) するライブラリを拾ってくるか、自分で syscall で呼ぶ必要があります。 # ただし、ハードリミットならどうしようもありません。 |
>>3385 68user さん、いつもありがとうございます。 すみません、レンタルサーバー(さくらウェブ)が ログを見せてくれません。 telnet は使えるので、もう少しいろいろやってみます。 検索した限りでは同じサーバーで同病の人が多いので 制限のようですが、どのレベルでの制限かはまだわかりません。 |
>>3385 68user 68user さん、ありがとうございました。 コメントを参考に対処していきます。 |
fork関数とselect関数の違いが分かりません。誰か教えてくれませんか? |
>>3388 peace fork は子プロセスを生成します。 select は複数の入出力インタフェースを監視するものです。 |
selectは親プロセス、子プロセスが存在しないのですか? |
>>3390 peace select は複数のプロセスを扱うためものではなく、1 つの プロセスが複数のソケット (*1) を同時に扱うためのものです。 たとえば http://www.goo.ne.jp http://www.yahoo.co.jp http://www.asahi.com を読みたいが、時間短縮のため 3サーバ同時に接続したい、という例が http://x68000.startshop.co.jp/~68user/net/http-parallel-1.html にあります。 ここではプロセスはひとつしか出てきませんが、ソケットは 3つ 使用しています。 *1: 本当はファイルディスクリプタ |
ありがとうございました。 |
以下のコマンドの意味が解りません。よろしくお願いします。 jobschmsgevent jobschcontrol if ( -f ./renkei.zip ) thenの中の-f ./ |
>>3393 doronjo jobなんたらは判らないのですが,-fはファイルテスト演算子です. ./renkei.zipがファイルとして存在するとき真を返します. ./は相対パスでrenkei.zipが実行中のスクリプトと 同じディレクトリにあることを示します. 68userさん hosts.allowの件いかがですか. どうにもなりませんか... |
>>3393 doronjo > jobschmsgevent > jobschcontrol Systemwalker のコマンドのようですね。付属のマニュアルを 読みましょう (わたしは Systemwalker を持ってないので わかりません)。 >>3394 Netboy > hosts.allowの件いかがですか. ああああすいません、すっかり忘れていました。本日中には必ず。 |
68userさん、ありがとうございました。 |
はじめまして。 LINUX上にて複数のGIFファイルを1つのPDFファイルに 変換指定のですが…。 とりあえず convert コマンドでできますかね…? こんな感じで… convert abc*.gif newfile.pdf |
いつも参考にさせていただいています。 質問があります。 FreeBSD4.8でウェブサーバをたてました。 インストール時にタイムゾーンを JST に設定しました。 FTPアカウントを一つ設定し、3ヵ月後にFTPアカウントをいくつか追加しました。 インストール後にすぐ作成したアカウントを使い、 FTPサーバにFTPクライアントでログインし、 新規にファイル等をアップロードすると、ファイル作成日が正しくJSTで表示されます。 しかし、追加した方のアカウントで同じようにFTPでログインし、 ファイル等をアップロードした所、なぜかUTCでファイル作成日等が表示されてしまいます。 date コマンドでは Thu Nov 6 18:42:54 JST 2003 等と正しく表示されます。 .shtml ファイルをアップし、そのなかにSSIコマンドでローカルタイムを取得すると、 どちらのアカウントでも正しくJSTで表示されます。 なぜ同じサーバなのに、FTPクライアントのみUTCで表示されたり、 アカウントによってタイムゾーンが異なって表示されたりするのでしょうか? FTPクライアントの設定は全く同じ環境ですし、クライアントマシン自体のタイムゾーンももちろんJSTです。 /stand/sysinstall で再度タイムゾーンの設定もしました。 ntpdate コマンドで、再度時刻修正もしました。 申し訳ありませんがご教授願います。 |
>>3397 しんさん > とりあえず convert コマンドでできますかね…? > convert abc*.gif newfile.pdf 実際に試してみればできるかどうかはわかるでしょう。 convert は ghostscript に頼らないと pdf を読み書き できないはずです。あと、複数の画像をひとつのファイルに まとめることができるのかどうかは非常に怪しいような気が します。 >>3398 MAX > 新規にファイル等をアップロードすると、ファイル作成日が正しく > JSTで表示されます。 これと > ファイル等をアップロードした所、なぜかUTCでファイル作成日等が > 表示されてしまいます。 これは、当然同じ FTP クライアントを使っているんですよね。 また、サーバ再起動などもしてないんですよね。 うーん、なんでしょうねぇ。/etc/login.conf の ftp-chroot や timezone の違いですかねぇ。 |
>>68userさん レスありがとうございます。 すみません、自己解決できました! 最初に作成したFTPアカウントは、/etc/ftpchroot にアカウント名を記載しておらず、 後で作成したFTPアカウントは、/etc/ftpchroot にアカウント名を記載してました。 ftpchroot すると、/etc/localtime を読まなくなるんですね。。。 この事を知らなかった為、こういう事になっていました。 お騒がせしてスミマセンでした ^^; |