こんにちは。質問があります。 標準出力と標準エラー出力を画面に出力しつつ エラー出力のみをファイルに保存したいのですが shと標準的なUNIXのコマンドを使って実現可能な ものなのでしょうか。 これまでに試したのは以下のような方法です。 --- test.sh --- #!/bin/sh echo stdout echo stderr 1>&2 --- [その1] $ ./test.sh 2>error.log エラーが画面出力されないので× いざとなれば別の仮想端末で $ tail -f error.log としてもいいのですが。 [その2] $ ./tesu.sh 2>&1 | tee error.log エラー以外の出力も保存されるので× |
>>2549 CZ http://www.ainet.or.jp/~inoue/memo/sh-fd.html などを読みつつ 考えた結果、 % (./test.sh > /dev/tty) 2>&1 | tee error.log と、サブシェルを使わないとできないんじゃないか、という 結論になりましたがどうでしょう。 |
>>2550 68user さん なるほど。 ttyでstdoutを出力してしまえば, stderrが後に残るというわけですね。 (正しい表現が分かっていませんが。) ありがとうございました。 |
こんにちは。 今日、こちらのページをみて、suidというものを使えば、 とあるCGIを「nobodyじゃない権限で実行させたい」と いう願いがかなうということがわかり、早速試してみました。 まず、こちらにサンプルでおいてあるwhoami.cgiをそのまま設置して パーミッションをrwsr-xr-xとしたところうまく動きました。 その後、自作のCGI(nobodyでは動かしたことがあるもの)を同様に nobodyでないユーザで動かそうと思ったら「Internal Server Error」 となってしまいました。 それで、うまくうごいた実績のあるwhoami.cgiを改造しながら原因を探した ところ、どうやら「require 'jcode.pl';」を書いてしまうと 「Internal Server Error」となってしまうということがわかりました。 require 'jcode.pl';行をコメントアウトすれば動きます。 なんとか、この一行を含んでいるものも、setuidして動かすことは出来ない ものでしょうか。 なにかよい方法がございましたらご教示ください。 宜しくお願い申し上げます。 |
>>2552 stone_free まず、 #!/usr/bin/perl require 'jcode.pl'; このスクリプトをコマンドラインから動かして下さい。カレント ディレクトリに jcode.pl があればちゃんと動くでしょう。 suid したスクリプトを実行すると、perl は自動的に汚染モード (taint mode) に切り替わります。いちいちスクリプトを suid して web 経由で実行するのは面倒なので、perl に -T オプションを付けて 汚染モードで動作させます。 #!/usr/bin/perl -T require 'jcode.pl'; 今度は jcode.pl が見付からない、と言われるはずです。 require がライブラリを探すパスは @INC で設定されていますので、今度は #!/usr/bin/perl print "@INC\n"; と #!/usr/bin/perl -T print "@INC\n"; で違いを調べます。 # perl -e 'print "@INC\n"' # perl -Te 'print "@INC\n"' # としてもいいです。 すると、上の方では @INC の最後に `.' (カレントディレクトリ) が含まれて いますが、-T を付けると `.' が含まれていないことがわかります。ドキュメント化 されていないのかもしれませんが、これは汚染モードの仕様なのでしょう。 というわけで、 require './jcode.pl'; require '/foo/bar/jcode.pl'; などと、@INC に頼らず require するか、require する前に push(@INC, '.'); すれば解決です。 その他、suidperl で動かすと PATH だとか umask だとかで文句を 言われることがあるかもしれませんが、いきなりブラウザ上で動作を 検証することはせず、必ず -T 付でコマンドラインから動作を確かめる ようにして下さい。 |
こんにちわ。早速なんですけど、教えて下さい。 以下のことを行った場合、 (1)javaのClassファイルをHP-UNIX上でコンパイル後、圧縮。 (2)windows2000にダウンロード後、CDに焼く。 (3)Solarisで解凍し、実行環境に投入。 で、Solarisで正常に動作するでしょうか? javaだから出来るような気もするんですけど、やっぱりリコンパイルは必要な気もして。 よろしくお願いします。 |
ひとつ気づいたこと。 これまでずっと,tar + gzip 形式のファイルを展開するのに % tar zxvf hoge.tar.gz といった順序でオプションを指定していました。 ところが,GNU Tar のマニュアルを見ると, こんなことが書いてありました。 <http://www.linux.or.jp/JM/html/GNU_tar/man1/tar.1.html> | tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。 | この後にはどのオプション機能を指定する事も出来る。 最初の記述法は厳密に言うと間違いということに なりそうなんですが,どんなものでしょうか。 |
>>2553 68user 68userさん、有難うございました。 大変参考になりました。 おかげさまで、動かすことができました。 感謝感激です。 もうひとつ、教えていただいていいでしょうか。 今回の手順のひとつに > perl に -T オプションを付けて汚染モードで動作させます。 > #!/usr/bin/perl -T > require 'jcode.pl'; > 今度は jcode.pl が見付からない、と言われるはずです。 とありましたが、このとおりファイルに書いて # perl test.cgi としてコマンドラインで実行してみたのですが、 Too late for "-T" option at test.cgi line 1. と出てしまいました。 #!/usr/bin/perlの後にオプションをつける場合は、クオートか なにかでくくらないといけないのでしょうか。 また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。 やはり、本来のユーザと違う権限で実行できてしまうから危険である ということでしょうか。 |
>>2554 たこ。 > で、Solarisで正常に動作するでしょうか? Java のバージョンが合っていれば正常に動作するんじゃないでしょうか。 まぁ僕なら怖いので、Solaris でコンパイルして生成された class ファイルを比較してみます。 >>2555 CZ > tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。 原文は The first argument to tar must be one of the options: Acdrtux なので誤訳だと思います。 tar に与える最初の引数の中には、必ず Acdrtux のうちの 1つを 指定しなければならない あたりでどうでしょうね。って、自信はないのですが。 |
>>2556 stone_free > #!/usr/bin/perlの後にオプションをつける場合は、クオートか > なにかでくくらないといけないのでしょうか。 原理を書き出すとまた長くなってしまうので割愛しますが、 #!/usr/bin/perl -T と書いたスクリプト hogescript を実行するには % ./hogescript とします。 これは % /usr/bin/perl -T ./hogescript と等価であって、 % /usr/bin/perl ./hogescript とは等価ではありません。 > また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。 ラクダ本では「汚染モード」と訳してあります。詳しくはこちらなど。 http://www-sampei.ctrl.titech.ac.jp/perldoc/perl_20.html |
>>2558 68user なるほど!よくわかりました。 重ね重ねありがとうございました。 |
こちらのページのお陰で、サーバプログラミングに入ることが出来ました。 CP/M、DOS、Windowsとやってきたのですが、サーバプ ログラミングに入れなくて困っておりました。 仕事でサーバ側のプログラムを組む必要に迫られ、Unixも知らな いし、サーバサイドの概念もつかめなくていたのに、今ではFTPや HTTP、POPもcronも使えるようになりました。 ついでにPerlまで覚えてしまいました。 黙って読ませていただくばかりでは心苦しく、お礼を述べさせて頂き に参りました。 今後もUnix勉強の基本ページとして利用させていただきます。 親切で分かりやすいページを作って下さり有り難うございます。 心より感謝申し上げます。 |
おっと、私もこのページにお礼を言いに来たのですが プチ先駆者が(笑) このページには大変お世話になっています ネットワークプログラミングの部屋でファイルディスクリプターという 概念を初めて知りました、僕は学生なのですが将来こういう方面の仕事に つきたいと思ってます。大変に参考になるページでした このページの更新、たのしみにしてますm(。。)m |
>> 2557 いろいろと調査してみた結果、windows上でコンパイルしたものを圧縮してsolarisに持っていっても、JAVA周りの環境さえ同じなら正常に動作するということなので、大丈夫だと思います。 ありがとうございました。 |
お世話になります、小僧です。 AIX上での文字コードに関してお聞きしたい事があります。 ファイルの文字コードを確認するコマンドというのは 存在するのでしょうか? 例えば、「このファイルの文字コードはShift-JISだな」などの 判断を行えるようなコマンドの事なのですが。 それと、iconvを行う事が出来る文字コードは、 "/usr/lib/iconv"ファイルに登録されているようなのですが、 このファイルはデフォルトでは存在しないのでしょうか? ご存知の方がいらっしゃいましたら、宜しくお願い致します。 |
kccなんてコマンドがありましたけど、AIXに存在するかどうかは 不明です。 Ex: kcc -c kannji_file.txt ん〜ちょっと調べてみると、どうもLinux系だけみたいだなぁ・・・ |
はじめまして、 現在色々とcgiを作成しており、 色々とよくわからないバグを調べている内 たどり着いた次第です。 他のサイトではあまり解説されていない ヘッダの解説など大変助かりました。 これからも更新楽しみにさせていただきます。 |
>>2564 スナフキン kccコマンドですが、ちょっと無さそうですね・・・ 現在使用しているAIXにmanコマンドが入っていないので なんともいえませんが、ネットや手持ちの資料には 載って無さそうです。 ついでに、と言っては失礼ですが、iconvでもう一つ質問を。 iconvコマンドで、変換後に存在しない文字が存在した場合、 自動で"_"に変換されるようですが、この"_"を他の文字に 変更する事は可能なのでしょうか? 例えば"*"にしたりする事は可能なのでしょうか? ご存知の方がいらっしゃいましたらアドバイスお願い致します。 |
>>2564 スナフキン 文字コードを判断する方法ですが、mule に付属している coco、 昔 fj に流れた kanjitype、jcode.pl の jcode::getcode、 mule/emacs のステータスバーに表示される E/S/J の文字。 僕が知っているのはこれくらいです。 |
お世話になります、小僧です。 色々と調べて頂いてありがとうございます。 どうやら、私の環境で調べる方法はなさそうですね・・・ また分からない事がありましたら、アドバイスお願い致します。 |
>>2564 スナフキン > ん〜ちょっと調べてみると、どうもLinux系だけみたいだなぁ・・・ こういう一般的な用途のコマンド (ファイルを読んでコード変換するだけ) で、 なおかつソースが公開されているものは、よっぽどのことがない限り Linux 専用ということはありません。 FreeBSD の port/package にもありますし、NetBSD の package には含まれて ないようですがコンパイルすれば使えるでしょう。まぁ、それを言い出したら 多分 Windows でも Mac でも使えそうな気がしますが。 >>2563 小僧 そういえば最初にここを紹介すべきでした。 http://www.jp.FreeBSD.org/QandA/HTML/1254.html >>2566 小僧 > 自動で"_"に変換されるようですが、この"_"を他の文字に > 変更する事は可能なのでしょうか? 多分できないです。できたとしても、その環境の iconv のみの独自拡張でしょう。 こういうのは考え方を変えて、 % sed 's/&/&/g' | sed 's/_/&ubar;/g' | iconv -f shift_jis -t euc-jp | \ sed 's/_/\*/g' | sed 's/&ubar;/_/g' | sed 's/&/&/g' などとファイル中の _ を別の文字に置換してから iconv を通せば なんとでもできます。 # &ubar; というのは、いま適当に考えた実体参照で、本当は存在しません。 >>2560 Moo >>2561 へんきち >>2565 sisya どもども。できれば改善すればよい点も書いていただけると嬉しいです。 # と言っても、時間がなくて対応できない可能性が大なんですが。 |
お世話になっております。 シェルスクリプトが上手く動作せず困っています。 行っている方法は、 Linux7.1J sendmail-8.11.2-14 procmail-3.21-0.71で ユーザ"XYZ"のホームディレクトリに.procmailrcファイルを置き、 XYZ宛てのメール受信時に条件が合えばシェルスクリプト"ABC"を 実行するようにしています。 メール受信時に条件が合い、シェルスクリプトを実行するところまでは 上手くできたのですが、実行するシェルスクリプトの中の一部分のみ 動作しません。 その部分とはユーザ"mono"に切り替え、さらにシェルスクリプトを実行する以下です。 su - mono -s /home/mono/mno.sh ---(1) ※ユーザ"mono"はパスワードなしです。 ((なお、mno.shの記述は scp /var/XYZ/123.txt abc.world.co.jp:/home/mono/123.txt ssh abc.world.co.jp sh /home/mono/mno2.sh です。 他のLinuxサーバabc.world.co.jpへsshでファイルをコピーし、 他のサーバのシェルスクリプトmno2.shを実行)) (1)の部分に対してエラーでは、 standard in must be a tty と表示されます。 他のサーバではこの記述通りで動作しました。 また、メール受信時にシェルスクリプト"ABC"を実行するユーザ"XYZ" で手動でシェルスクリプトを実行すると(1)の部分も動作します。 Webで調べたところ、同じような現象になっている例もありましたが 解決策がありません。 そしてエラーの意味がよくわかりません。 勝手な推測ですが、実行しているサーバではセキュリティが強いため パスワードなしとしている"mono"ユーザが原因ではないかと思います。 ですが、シェルスクリプトでパスワードも記述した形での"su"の実行は 可能かどうか分かりません。 申し訳ありませんが、何かよい策をお教えください。 |
タブ区切りテキストを split /\t/ で切って各フィールドを変数に読み込み、 join "\t" で戻そうとすると、 場合によってはデータが抜けていることがあるので困ります。 タブ区切りデータを a, b, c, d、タブを->であらわすと、 split /\t/, "a->b->c->d" => (a,b,c,d) split /\t/, "a->->c->d" => (a,c,d) split /\t/, "a->b->->d" => (a,b,d) split /\t/, "a->->->d" => (a,d) split /\t/, "a->b->->" => (a,d) ということで、 1 while $str =~ s/\t\t/\t♪\t/; @list = split /\t/, $str; for (@list) { s/♪//; # $_ は @list の要素を参照する。♪がデータにないと仮定 } とかやってるんですが、いかにもダサいですね。 もっと常道はあるんでしょうか? Excel で編集すると a->b->->\n が a->b\r\n となってしまうのも 困る。 |
<A href="javascript:x(1)">1</A> をクリックすると最終的に Nの値(abcの所)を計算し document.location.href="http://www.a/cgi/a.cgi?N=abc"; としていたのですが、不便な所を感じ変えたいと思っています。 Submitボタンを押したらNを計算し <FORM name="f" method="post" onSubmit="if(x() != true) {return false}" action="a.cgi"> <INPUT type=hidden name=N value=abc> としてa.cgiを起動する方法は知っているのですが、 上のものと組み合わせた感じで <A href="javascript:x(1)">1</A>をクリックして 最終的にNを計算し <INPUT type=hidden name=N value=abc> のようにpost/getで起動する方法はないでしょうか? 自分なりにやってみてもよくわからないのです。 どなたか教えて下さい。 お願いします。 ちなみに初心者です。難しいことは解らないので細かく教えていただくと 助かります。 |
>>2570 q19_77 > standard in must be a tty su は端末 (tty) からのパスワード入力を求めているのに、 端末がないよ、という意味です。 端末というのは、キーボードで入力ができて、文字が表示されるもの、 たとえば kterm がそれです。procmail 経由で実行されると端末が 割り当てられないので (キーボードもないし、出力する画面もない) エラーになっているわけです。 > 他のサーバではこの記述通りで動作しました。 本当ですか? どうして root でもないのに、パスワードなしで su で他ユーザになれるのですか? > su - mono -s /home/mono/mno.sh 気になる点は2つ。 なぜ -c でなく -s なのでしょうか? http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/su.1.html によると、-s はシェルを実行するオプションですから、-s の場合端末が あることをチェックしているのかもしれません。 あるいは環境変数 TERM などがセットされているので、端末を見にいってしまう という可能性も考えられます。 ちなみに FreeBSD 4.4-RELEASE では、端末がない状態で (cron 経由) echo PASSWORD | su root -c /usr/bin/id でプログラムの実行ができました。 >>2571 ふくし > 場合によってはデータが抜けていることがあるので困ります。 そんなことはないと思いますが、perl のバージョンは何ですか? perl-5.005_03 ではそのような挙動を示しませんでした。 |
>>2573 68user さん: えっと、 split /\t/, "a->b->c->d" => (a,b,c,d) split /\t/, "a->->c->d" => (a,'',c,d) split /\t/, "a->b->->d" => (a,b,'',d) split /\t/, "a->->->d" => (a,'','',d) split /\t/, "a->b->->" => (a,b,'','') となってくれる、ということですか? あれーおかしいなー、、。 実は、下の♪を使ったコードが動いたのでロクな検証をしてないのでした。 勝手な思い込みで外していたら申し訳ありません。 Excel による末尾のタブの削除等の現象かな? うーんうーん。 |
皆さん教えてください。 DATのテープを新しく交換するときに、ラベリングを行おうとすると I/O errorが出るんですけど、まさか、formatが必要とかそんなことですか |
お世話になります。 相変わらずiconvで困っています。 下記のように、コマンドを発行したのですが、 エラーが出てしまってiconvが出来ません。 ----- コマンド発行 ----- $iconv -f shift_jis -t euc aaa ----- エラーメッセージ ----- iconv: 0791-004 コンバータがオープンできません 自分で調べたところ、必要なファイルだと思われるのは、 /usr/lib/iconvファイルだと思うのですが、 このファイルは存在しません。 もしこれが原因なら、中身のサンプルを教えていただければ幸いです。 宜しくお願い致します。 |
>>2576 小僧 > $iconv -f shift_jis -t euc aaa euc という文字コードは存在しないような気がするので (ほんとか?)、 とりあえず -t euc-jp を試してみましょう。 >>2574 ふくし > となってくれる、ということですか? はい、そういうことです。 |
>>2577 68user >とりあえず -t euc-jp を試してみましょう。 ----- 実行文 ----- iconv -f shift-jis -t euc-jp aaa を行ってみましたが、同じ現象が発生しました。 当然の事ながら、ファイル"aaa"はきちんと存在します。 宜しくお願い致します。 |
>>2574 ふくし > split /\t/, "a->b->->" split /\t/, "a->b->->", -1 でわ? |
>>2576 小僧 web で AIX のマニュアルを探してみました。 http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds3/iconv.htm http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixprggd/genprogc/convert_prg.htm#A197C1176 によると、AIX では euc-jp ではなく IBM-eucJP なのかもしれません。 Shift_JIS も同様に IBM-932 かもしれません。 > 自分で調べたところ、必要なファイルだと思われるのは、 > /usr/lib/iconvファイルだと思うのですが、 上記マニュアルを見ると、コンバータのファイルのありかは /usr/lib/nls/loc/iconv/ /usr/lib/nls/loc/iconvTable/ と書いてあるように見えます。 # なぜ /usr/lib/iconv/ だと判断したかが第三者にわかるように書きましょう。 # 皆が AIX を使っているありませんので。 僕は AIX4.3 のマニュアルを見ましたが、あなたがお使いのバージョンが わからないので、これが正しいかどうかはわかりません。ちゃんと OS の バージョンを書きましょう。 >>2579 /tk なるほど。その例では確かに -1 が必要ですね。僕は split /\t/, "a->->c->d" => (a,'',c,d) のように真ん中に TAB がある例だけを試していて、気づきませんでした。 |
>>2573 68user ご返答ありがとうございます。 >> 他のサーバではこの記述通りで動作しました。 >本当ですか? どうして root でもないのに、パスワードなしで >su で他ユーザになれるのですか? >> su - mono -s /home/mono/mno.sh ユーザ"mono"にパスワードがないため、なぜか実行できました。 >なぜ -c でなく -s なのでしょうか? よく分からずに指定したシェルを実行するとあったので、-s に しました。また -c でも駄目でした。 >ちなみに FreeBSD 4.4-RELEASE では、端末がない状態で (cron 経由) > echo PASSWORD | su root -c /usr/bin/id >でプログラムの実行ができました。 この場合、rootのパスワードが必要かと思いますが、そこはどのように されているのでしょうか。 >そんなことはないと思いますが、perl のバージョンは何ですか? >perl-5.005_03 ではそのような挙動を示しませんでした。 perlのバージョンは、perl-5.6.0-12ですが、 シェルスクリプトはどちらもperlを使用しておりません。 #!/bin/sh su - mono -s /home/mono/mno.sh また、 #!/bin/sh scp /var/XYZ/123.txt abc.world.co.jp:/home/mono/123.txt ssh abc.world.co.jp sh /home/mono/mno2.sh と書いています。 そもそもこれが駄目なのでしょうか。 宜しくお願いします。 |
初めて書込みするんですけども、最近Cシェルを始めたんですが・・・ 最初にログインした、IPアドレスから他のアドレスへログインする事ってできますか? |
>>2580 68user 返信ありがとうございます。 >web で AIX のマニュアルを探してみました。 わざわざ時間を割いていただいてありがとうございます。 ># なぜ /usr/lib/iconv/ だと判断したかが第三者にわかるように >書きましょう。 >僕は AIX4.3 のマニュアルを見ましたが、あなたがお使いのバージョン >がわからないので、これが正しいかどうかはわかりません。ちゃんと >OS のバージョンを書きましょう。 申し訳ございませんでした。 調べたのは「UNIX クイックリファレンス」という本です。 OSのヴァージョンは、AIX 4.3です。 次回からはきちんと記載するように致します。 お蔭様で、iconvが出来るようになりました。 本当にありがとうございました。 |
いつも参考にさせて貰っています。 ひとつ気づいた所があるのですが、Perlでのforkを使ったサーバプログラムの部分ですが、 親プロセスは子プロセスの終了ステータスを受けとらなければならないため、waitが必要だと思います。waitが無いと、子プロセスが終了してもdefunct状態のまま存在し続けてしまいます。 このwaitについて、下記の一行を追加するだけでうまくいきます。 $SIG{CHLD} = sub { wait }; (オライリーのらくだ本より) 以上、ご参考まで。 |
お世話になります、小僧です。 連続の質問になるので、気が引けるのですが、 どうしても分からないので相談させて下さい。 AIX4.3.3 にてCDをマウントを行ったのですが、 CDのファイル名が全て小文字に変換されてしまいます。 Windowsで見ると大文字、小文字の区別がされています。 マウントを行うときに、オプション指定で 大文字、小文字を判定させる事は可能なのでしょうか? #AIXでのマウントってちょっと特殊なんですよね? #私が実行したマウントコマンドを記述しておきます。 #>mount -V cdrfs -r /dev/cd0 /mnt アドバイス、お願い致します。 |
はじめまして。 サンプルプログラムをいつも参考にさせていただいている者です。 「C言語で ftp クライアントを作ってみよう (1)」のプログラムを 参考にFTPプログラムを作成していますが、プログラム中で、 cdコマンド、putコマンド相当の処理を行う場合はどのような記述を すればよいか教えていただけないでしょうか(_0_) user、passwd、quitの入力を、USER、PASS、QUITを使用して コマンドをしているように見えます。これ相当の処理を、cd、putで 行う場合のプログラミングを調べております。 申し訳ありませんが御覧になっていたらアドバイスをお願いします (_0_) |
はじめまして。* システムコール・ライブラリルーチンのページをよく見させて いただいている者です。 ふと、気がついた部分がありまして生意気にも 指摘の投稿させていただきました。 http://x68000.startshop.co.jp/~68user/unix/pickup?usleep において、マイクロ秒:百万分の一秒 であり、 0.001 秒単位ではなく、 例の説明も違っていると思います。 既に指摘があったらすいません。 |
こんにちは。 http://X68000.startshop.co.jp/~68user/が正式なURLとの事ですが、OmniWeb4.0.6というブラウザを使うとアドレスを読み込み出来ない旨が表示され以下のようなエラーが表示されます。 http://www2.startshop.co.jp/~68user/では正常に表示されます。 Mar 19 00:45:16 http://X68000.startshop.co.jp/~68user/(HTTP): Host not found: u30dbu30b9u30c8 x68000.startshop.co.jp u306fu3042u308au307eu305bu3093 Mar 19 00:45:16 http://X68000.startshop.co.jp/~68user/ (HTTP): Host not found: ホスト x68000.startshop.co.jp はありません ブラウザのバグかもしれませんが、一応ご報告まで。 ネットワークプログラミングの基礎知識、とても参考になります。 では。 |
>>2588 狂態公開 う〜ん。 ;; ANSWER SECTION: x68000.startshop.co.jp. 17h56m14s IN CNAME ww2.startshop.co.jp. www2.startshop.co.jp. 17h56m14s IN A 210.249.139.22 CNAMEか・・ 狂態公開さんの所のDNSサーバーがおかしいんだと思うぞう。 |
x68000.startshop.co.jp. 17h56m14s IN CNAME www2.startshop.co.jp. だな。wを一つ消してもた |
初めまして、こんばんわ。 ブックさせて頂いて、お勉強させて頂いております。m(_ _)m レンタルサーバを1台借りて、色々しているのですが 今回IPアドレスを2つ追加したのはいいけれど、設定に途方にくれて 書き込みさせて頂いております。 ifconfig_fxp0="inet 210.224.181.hhh netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 210.224.177.ttt netmask 255.255.255.255" 現状に、追加 210.188.eee.6/31 (7も有効)ということで ifconfig_fxp2_alias0="inet 210.188.eee.6 netmask 255.255.255.254" を、追加した次点ではpingでもちゃんと返って来てたのが・・ ifconfig_fxp3_alias0="inet 210.188.eee.7 netmask 255.255.255.254" も、追加したら 6では パケットエラー、7では1行出てそれ以降は いつまでたってもうんともすんとも状態になってしまいました。 が、これはtera term menu で自分サーバー内からのことで、外から TELNET使用すると普通にpingで返ってくるのですが、これはどう考えたらよいものなのでしょうか。 ご存じの方いらっしゃいましたら、アドバイスを頂きたく書き込みさせて頂きました。宜しくお願い致します。 |
>>2591 あや まず、OS 名とバージョンを書きましょう。FreeBSD っぽいので FreeBSD として回答します。 fxp0, fxp2, fxp3 ということは、NIC 3 枚差しなのですか? ifconfig -a で fxp0, fxp2, fxp3 それぞれの情報がちゃんと 出てきます? > ifconfig_fxp2_alias0="inet 210.188.eee.6 netmask 255.255.255.254" > を、追加した もし /etc/rc.conf を編集してリブートしているのでしたら、それは やめて、コマンドラインから # ifconfig fxp2 inet 210.188.eee.6 alias netmask 255.255.255.254 などとして、その後 # ifconfig -a で確認するようにして下さい。 で、要は # ifconfig fxp0 inet 210.224.181.hhh netmask 255.255.255.0 # ifconfig fxp0 inet 210.224.177.ttt alias netmask 255.255.255.255 # ifconfig fxp2 inet 210.188.eee.6 alias netmask 255.255.255.254 # ifconfig fxp3 inet 210.188.eee.7 alias netmask 255.255.255.254 とした、ということですか? fxp2 と fxp3 にそれぞれ重複して IP アドレスを振ってないならば、 「alias」を削って # ifconfig fxp0 inet 210.224.181.hhh netmask 255.255.255.0 # ifconfig fxp0 inet 210.224.177.ttt alias netmask 255.255.255.255 # ifconfig fxp2 inet 210.188.eee.6 netmask 255.255.255.254 # ifconfig fxp3 inet 210.188.eee.7 netmask 255.255.255.254 じゃないかなと思います (ifconfig の実装によっては OK なのかも)。 > も、追加したら 6では パケットエラー、7では1行出てそれ以降は > いつまでたってもうんともすんとも状態になってしまいました。 エラーの内容を具体的に書きましょう。 で、ping が通らないということは、インタフェースが認識されていないか、 ルーティングテーブルがおかしいか、arp テーブルがおかしいのでしょう。 netstat -a、netstat -r、arp -a の結果はどうなってますか? |
>>2587 pyu > マイクロ秒:百万分の一秒 であり、0.001 秒単位ではなく、例の説明も > 違っていると思います。 ご指摘ありがとうございます。早速修正しました。 http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/unix/org/func.src 僕はマイクロ=ミリ (ミリはマイクロの略称) だと完全に勘違いしていたのですが、 ミリ秒=1/1,000 秒 マイクロ秒=1/1,000,000 秒 なのですね。よく考えれば1ミリメートルと1マイクロメートルが同じ長さなはずが ない、と。 >>2588 狂態公開 > OmniWeb4.0.6というブラウザを使うとアドレスを読み込み出来ない旨が > 表示され以下のようなエラーが表示されます。 うーむ、僕も DNS がおかしいのではないかと思うのですが…。 もし Mac OS X をお使いでしたら、ping や nslookup を 試してみて下さい。 |
>>2586 超初心者 > 参考にFTPプログラムを作成していますが、プログラム中で、 > cdコマンド、putコマンド相当の処理を行う場合はどのような記述を > すればよいか教えていただけないでしょうか(_0_) perl 編で、FTP プロトコルそのものの解説をしておりますので、ご一読下さい。 http://x68000.startshop.co.jp/~68user/net/ftp-1.html http://x68000.startshop.co.jp/~68user/net/ftp-2.html http://x68000.startshop.co.jp/~68user/net/ftp-3.html http://x68000.startshop.co.jp/~68user/net/ftp-4.html >>2584 persianopeh > 親プロセスは子プロセスの終了ステータスを受けとらなければならないため、 > waitが必要だと思います。 ごもっともです。wait をすっかり忘れておりました。 ただ、解説も一緒に付けたいので、少し時間を下さいませ。 |
>>2585 小僧 > マウントを行うときに、オプション指定で大文字、小文字を判定させる > 事は可能なのでしょうか? まず基礎知識。CD-ROM にはいくつかフォーマットの種類があります。 http://www.zdnet.co.jp/magazine/pcjapan/0105/sp2/09.html http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds1/toc.htm ISO9660 は大文字・小文字を区別しません (たぶん全て大文字で記録される)。 Joliet は、MS-DOS の 8.3 形式とロングファイルネームの2つのファイル名を 持ちます。UNIX のように大文字・小文字を区別するには RockRidge (ロックリッジ) というフォーマットを使います。 よって、その CD-ROM が ISO9660 で作られているなら、大文字小文字の 区別はできません。ただし Windows で大文字小文字が区別されている ということは、その CD-ROM は Joliet か RockRidge なのかもしれません。 Windows で見て、8.3 形式とロングファイルネームの両方が表示されるなら、 それは Joliet 形式かもしれません (本当かなぁ)。 なお、AIX は Joliet には非対応ですが、RockRidge には対応しているようです。 http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixbman/admnconc/fs_overview.htm これらのファイルタイプを mount のオプションで指定する方法は、web の マニュアルからは読みとれませんでした (むしろ cdrfs を指定すれば 自動認識してくれそうに思える)。 というわけで、残念ながら解決法はわかりませんでした。 >>2852 mattu > 最初にログインした、IPアドレスから他のアドレスへログインする > 事ってできますか? 質問の意味がわかりません。 |
>>2581 q19_77 > ユーザ"mono"にパスワードがないため、なぜか実行できました。 なるほど、納得です。 >> echo PASSWORD | su root -c /usr/bin/id >>でプログラムの実行ができました。 > この場合、rootのパスワードが必要かと思いますが、そこはどのように > されているのでしょうか。 echo PASSWORD の部分に root のパスワードを書いています。 > perlのバージョンは、perl-5.6.0-12ですが、 > シェルスクリプトはどちらもperlを使用しておりません。 それは、ふくしさんに対しての回答です。今回の問題で perl のバージョンを 疑っているわけではありません。 一番簡単なのは root 権限で su - mono -c /home/mono/mno.sh とすることです。root 権限なら何の問題もなくできるはず。 また、問題を切り分けましょう。 > ssh abc.world.co.jp sh /home/mono/mno2.sh ここで tty を要求している可能性もないとは言えませんので、まずは su - mono -c /usr/bin/id から始めるべきです。 |
お世話になります。m(_ _)m FreeBSD 3.5.1 を 利用しております。 すみません、前回書き込みが間違っていました。 NICは1枚です。IPは計4つの状態です。 rc.conf の中身は現在下記のようにしています。 ifconfig_fxp0="inet 210.224.171.ttt netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 210.224.177.hhh netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 210.188.fff.6 netmask 255.255.255.254" ifconfig_fxp0_alias2="inet 210.188.fff.7 netmask 255.255.255.254" ww# ping 210.188.fff.6 PING 210.188.fff.6 (210.188.fff.6): 56 data bytes ping: sendto: Can't assign requested address ・ ・ と、続いて www# ping 210.188.fff.7 PING 210.188.fff.7 (210.188.fff.7): 56 data bytes この行のみしか出ません。 ww# ifconfig -a fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 210.224.171.ttt netmask 0xffffff00 broadcast 210.224.171.ttt inet 210.224.177.hhh netmask 0xffffffff broadcast 210.224.177.hhh inet 210.188.fff.6 netmask 0xfffffffe broadcast 210.188.fff.7 inet 210.188.fff.7 netmask 0xfffffffe broadcast 210.188.fff.7 www# netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 6823 210.224.177.hhh.http TKTcd-01p91.ppp..1696 FIN_WAIT_1 tcp 0 0 210.224.177.hhh.http TKTcd-01p91.ppp..1694 TIME_WAIT tcp 0 0 210.224.177.hhh.http 203.139.83.201.4518 FIN_WAIT_2 tcp 0 0 210.224.177.hhh.http 210.225.27.166.13100 FIN_WAIT_2 tcp 0 0 210.224.177.hhh.http 210.225.27.166.13088 FIN_WAIT_2 tcp 0 4 www.telnet c85242.tctv.ne.j.1872 ESTABLISHED tcp 0 0 *.http *.* LISTEN tcp 0 0 *.smtp *.* LISTEN tcp 0 0 *.pop3 *.* LISTEN tcp 0 0 *.telnet *.* LISTEN tcp 0 0 *.ftp *.* LISTEN tcp 0 0 *.sunrpc *.* LISTEN udp 0 0 *.sunrpc *.* udp 0 0 *.syslog *.* Active UNIX domain sockets Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr c89aaf80 dgram 0 0 0 c89a0fc0 0 c89aafc0 c89aafc0 dgram 0 0 0 c89a0fc0 0 0 c89a0fc0 dgram 0 0 c899f680 0 c89aaf80 0 /var/run/log www# netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default oscrt1e-L5.gw.saku UGSc 26 1593573 fxp0 localhost localhost UH 0 112 lo0 210.188.fff.6 0:e0:18:e0:10:2b UHLWb 0 10 lo0 => 210.188.fff.6/31 link#1 UC 0 0 fxp0 210.188.fff.7 ff:ff:ff:ff:ff:ff UHLWb 0 141 fxp0 210.224.171 link#1 UC 0 0 fxp0 oscrt1e-L5.gw.saku 0:0:5e:0:1:16 UHLW 26 0 fxp0 1200 oscrt2e-L5.gw.saku 0:e0:80:2f:1d:0 UHLW 0 0 fxp0 1199 210.224.177.hhh/32 link#1 UC 0 0 fxp0 www# arp -a ? (210.188.fff.6) at 0:e0:18:e0:10:2b permanent [ethernet] ? (210.188.fff.7) at ff:ff:ff:ff:ff:ff permanent [ethernet] oscrt1e-L5.gw.sakura.ad.jp (210.224.171.1) at 0:0:5e:0:1:16 [ethernet] oscrt2e-L5.gw.sakura.ad.jp (210.224.171.2) at 0:e0:80:2f:1d:0 [ethernet] このようになっております。宜しくお願い致します。 |
>>2596 68user ご返答ありがとうございます。 su - mono -c /usr/bin/id として試してみましたが、やはりmonoユーザになれないようでした。 68userさんの言われる通り、以下のようにroot権限で処理を行うように しましたところ、上手く動作しました。 sudorsファイルにmonoユーザがroot権限で"su"できるよう記述 mono ALL= NOPASSWD: /bin/su シェルスクリプトファイルに以下のように記述 sudo su - mono -c /home/mono/mno.sh 上手く動作しなかった原因と対処法は分かりませんでしたが、 動作するようになりましたので、よかったです。 どうもありがとうございました。 |
>>2597 あや > ifconfig_fxp0_alias2="inet 210.188.fff.7 netmask 255.255.255.254" ifconfig_fxp0_alias2="inet 210.188.fff.7 netmask 255.255.255.255" だと思います。 // 以下参照 http://www.freebsd.org/ja/handbook/configtuning-virtual-hosts.html |
早速ありがとうございます。 210.188.fff.6/31 として 6と7がIPとして有効。 /31と言うことで255.255.255.254としていたのですが、 7の場合は255.255.255.255とする理由をご伝授頂ければ勉強になります。 ww# ping 210.188.fff.6 PING 210.188.fff.6 (210.188.fff.6): 56 data bytes ping: sendto: Can't assign requested address ・ ・ と、続いて www# ping 210.188.fff.7 PING 210.188.fff.7 (210.188.fff.7): 56 data bytes ping: sendto: Can't assign requested address ・ ・ と、続くようにはなりましたが。 何度もすみません。宜しくお願い致します。 |
いまさらながら気づいたのですが、 >>2597 あや > ifconfig_fxp0_alias1="inet 210.188.fff.6 netmask 255.255.255.254" > ifconfig_fxp0_alias2="inet 210.188.fff.7 netmask 255.255.255.254" これは根本的に無理でしょう。210.188.fff.6/31 ってことは、 210.188.fff.6 … ネットワークアドレス 210.188.fff.7 … ブロードキャストアドレス となってしまい、IP アドレスを1つも振ることはできません。ネットワーク アドレス部は 30 ビット以下でないとおかしい。 うちの FreeBSD 4.4-RELEASE でも # ifconfig vr0 inet 10.1.1.1 alias netmask 255.255.255.254 とすると、 ping: sendto: Can't assign requested address となりました。 >>2599 hsj > http://www.freebsd.org/ja/handbook/configtuning-virtual-hosts.html に従って、 # ifconfig vr0 inet 10.1.1.1 alias netmask 255.255.255.252 # ifconfig vr0 inet 10.1.1.2 alias netmask 255.255.255.255 としたら OK でした。 |
>>2595 68user お世話になります。 色々調べて頂いてありがとうございます。 その後、調査をした結果、方法がわかりました。 #mount -V cdrfs -r -o nocase /dev/cd0 /mnt コマンドで、大文字、小文字を判定してくれました。 必要なオプションは"-o nocase"だったようです。 時間を割いて調査して頂き、ありがとうございました。 |
>>2601 68user > これは根本的に無理でしょう。210.188.fff.6/31 ってことは、 > 210.188.fff.6 … ネットワークアドレス > 210.188.fff.7 … ブロードキャストアドレス > となってしまい、IP アドレスを1つも振ることはできません。ネットワーク > アドレス部は 30 ビット以下でないとおかしい。 あ、そりゃそうですね・・・。 設定にだけ目がいって基本的な部分を見落としてました(苦笑 そういえば、本題とは関係ありませんが件のページの、 > システムは 10.1.1.0 には 10.1.1.1 として, 202.0.75.20 には > 202.0.75.17 として現れるようにします. は、やっぱり「202.0.75.16 には202.0.75.17 として〜」と 書きたかったんでしょーか。 >>2600 あや > 255.255.255.255とする理由をご伝授頂ければ勉強になります。 これはFreeBSDの場合はそう言うモンだとしか。 ちゃんと調べたわけではありませんが、ルーティングとかの絡みでの 単なる実装上の都合ではないでしょうか。 |
>>2603 hsj > 「202.0.75.16 には202.0.75.17 として〜」と書きたかったんでしょーか。 原文は http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/configtuning-virtual-hosts.html We want the system to appear at 10.1.1.1 through 10.1.1.5 and at 202.0.75.17 through 202.0.75.20. なので、 10.1.1.1 から 10.1.1.5 まで、202.0.75.17 から 202.0.75.20 まで てなところではないでしょうか。 誤訳かなぁと思うのですが、自信なし。 |
ご教授、本当にありがとうございました。m(_ _)m 今回、全部ではないですが理解出来た部分が増えました。m(_ _)m 元々のレンタサーバからの設定が通常とは違うのか、かなりの時間を 経て本日回答は 255.255.255.255 設定にして下さいとのことでした。 ping すると 返ってくるので、こういう設定もあるのかと 又 少し頭を かかえたりもですが。(ーー; 本当にほんとうに、ありがとうございました。m(_ _)m m(_ _)m m(_ _)m |
ActivePerl について質問です。 (ActivePerl-5.6.1.631-MSWin32-x86.msi を使っています) Windows 2000 から`拡張子 pl を使うと、 C:\> foo.pl のようにコマンドのように実行できるようになりましたが、 <> を使ってコマンドラインからファイルを入力すると、 引数にファイル名を渡すと OK ですが (C:\> foo.pl bar.txt のような状態) インプットリダイレクションすると NG です。 (C:\> foo.pl < bar.txt のような状態) 症状は、1行も読み込みません。 これはこういう現象なのでしょうか? 内部的になにが起こっているのでしょうか? もしなにかわかりましたらご教示ください。 |
お世話になります。 また質問をさせて頂きます。 AIXサーバ(ver 4.3.3)から、ファイルを3490テープに出力し、 そのファイルをホスト(S/390)が受取り、処理を行う、 という運用があるのですが、AIXサーバからファイルを3490テープに 出力する方法がまったくわかりません。 上記質問とは関係のない、3490テープに関する情報でも構いませんので、 ご存知の方がいらっしゃいましたら、情報をアナウンスして頂ければ幸いです。 また、必要な情報が何なのかも分かっていません。 「これを読んで勉強してこい」という情報でも構いませんので、 宜しくお願い致します。 |
POP3についての質問です。 Webメールクライアントに興味があり、 初めてFreeBSDをインストールしたのですが 事ある毎に何日も嵌り続けています(^^; 今回、問題の切り分けも自力で出来ずに悩んでいます。 何か良いアドバイスを頂ければと思い書き込みさせて頂きます。 FreeBSD + checkpassword を使いPOPサーバーを起動しています。 例えば User@bsd.com 宛のメールを閲覧するのにPOP3Client.pmを使った perlスクリプトなのですが何故か、私の組んだサーバーを含むいくつかの サーバーで「ユーザー認証が出来ません」 ただ、どのサーバーも telnet で 110ポートへ接続して > USER User > PASS Pass > LIST とすると認証され一覧も表示されます。 Web上で見つけた他のクライアントソフト(peepmail)で試したのですが 同じように特定サーバーで認証エラーが発生します。 その後SOCKET部分の問題かと思い 参考文献によくあるような 〜 略 〜 select(SOCKET); $|=1; select(STDOUT); print SOCKET "USER $username\r\n"; print SOCKET "PASS $passwd\r\n"; print SOCKET "LIST\r\n"; 〜 略 〜 では +OK <8182.1017479300@bsd.com> といった返事しか得られなかった為に 〜 略 〜 select(SOCKET); $|=1; select(STDOUT); print SOCKET "USER $username\r\n"; $tmp = <SOCKET>; print SOCKET "PASS $passwd\r\n"; $tmp = <SOCKET>; print SOCKET "LIST\r\n"; $tmp = <SOCKET>; 〜 略 〜 又は 〜 略 〜 select(SOCKET); $|=1; select(STDOUT); print SOCKET "USER $username\r\n"; print SOCKET "PASS $passwd\r\n"; sleep(1); print SOCKET "LIST\r\n"; 〜 略 〜 とした所、サーバーからの応答が得られました。 この事と関係しているのでしょうか? POP3Client.pm の内容も見たのですが全然分かりません。。。 原因はどの辺りにあるのか、アドバイスを頂けないでしょうか。 |
自己レスです。 POP3Client の呼び出しで > TIMEOUT => 60 というタイムアウト指定項目がありこれを 設定した所、無事に動作致しました。 結局の所、反応の遅いサーバーではタイムアウト指定を してあげないといけなかっただけのようです。 1週間以上悩んでいた事が BBSへ書き込んで数時間で解決しました(^^; |
>>2609 sio DEBUG=>1 としておけば気づきやすかったかもしれませんね。 |
SOCKETを使ったHTTPクライアントソフトで認証のページに アクセスする方法はどうするのでしょうか? |
>>2611 hama 認証が必要なページを読むと、Basic 認証が必要なページならば HTTP/1.1 401 Authorization Required WWW-Authenticate: Basic realm="This URI is required authentication" というようなレスポンスが返ってきます。 もしユーザ名が USER、パスワードが SECRET なら、クライアントは USER:SECRET という文字列を作り、それを base64 でエンコードした VVNFUjpTRUNSRVQK という文字列を「Authorization: Basic 」に続けて送ります。つまり GET / HTTP/1.0 Authorization: Basic VVNFUjpTRUNSRVQK こんな感じ。 Digest 認証ならば、web サーバは WWW-Authenticate: Digest realm="testrealm@host.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41 という感じのを返してくるので、クライアントは GET / HTTP/1.0 Authorization: Digest username="hoge", realm="testrealm@host.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/", response="e966c932a9242554e42c8ee200cec7f6", opaque="5ccc069c403ebaf9f0171e9517f40e41" こんな感じで。 詳細はこちらを。 http://www.ietf.org/rfc/rfc2617.txt |
はじめまして、いつも勉強させて頂いております。 バージョン管理ソフトのCVSについて質問です。 ソースをレポジトリにインポートすると「ファイル名,v」となります。 ,vが管理されていると言う事だと思うのですが、この管理している ソースを直接WEBに反映したいのですが,vがある事でもとのファイルがみつからないとのエラーがブラウザに表示されてしまいます。 CVSROOTの中(loginfo等)はそれぞれ、元のファイルと,vのファイルがあり、チェックアウトしてソースを修正して戻すと両方のファイルが 更新されています。このようにする方法は無いのでしょうか。 以上、宜しくお願いします。 |
申し訳ないです。下の質問わかりにくいですね。 例えばindex.htmlをインポートするとindex.html,vとなってしまう為 ブラウザーでindex.htmlを表示できないという事です。 宜しくお願いします。 |
>>2614 kouhei 目的は、履歴 (index.html,v) を表示することですか? それともコンテンツ (index.html) を表示することですか? |
>>2615 68user 追加。 もし後者だとしたら、リポジトリを直接ブラウザで見ようとして いるのはなぜですか? |
素早いレスありがとうございます。 目的はコンテンツ(index.html)を表示したいということです。 参考にトップページのソースを拝見させていただきました。 1行目に<!--$ID:index.html,v 〜 があるというこはindex.htmlを 管理しているという事ですよね。これはチェックアウトした物を表示 しているのですか。 私がやりたいのはインポートしたindex.htmlを表示したいという事です 以上、宜しくお願いします。 |
追加。 もしかして普通はこんな事しませんか。 テスト用サーバでcommitと同時に画面に反映されたらテストが楽に なると思ったので。動作確認ができたら本番サーバにリリースする というような事を考えていました。 実現できるのでしょうか。 |
>>2618 kouhei > テスト用サーバでcommitと同時に画面に反映されたらテストが楽に > なると思ったので。動作確認ができたら本番サーバにリリースする > というような事を考えていました。 運用の問題になりますが、commit しないとテストできないというのは 面倒ではないですか? 普通、ちょっと作ってはブラウザで確認、不具合を修正し、確認し…と 修正・確認を繰り返して、まぁ問題ないだろうというときになったら commit するものだと思います。 よって、 - CVSROOT が /home/user/cvsroot - テスト環境を置くディレクトリが /home/user/public_html/ - 本番環境を置くディレクトリが /usr/local/www/data/ だとしたら、 % cd /home/user/public_html (ここで修正・確認を繰り返す) % cvs commit % cd /usr/local/www/data/ % cvs update (本番環境に反映。あるいは再度 checkout しなおしてもよい) とするのがよいと思います。 CVSROOT/loginfo をいじれば、commit した瞬間に本番環境へ反映させる ことは不可能ではありませんが、常に本番環境に即時反映されるのも困る 場合があるんじゃないでしょうか? また、本番環境への自動反映であれば、cron で定期的に更新するという 手もあります。loginfo で凝ったことをするより、cron で小回りのきく 単純なシステムを作った方がいいかもしれません。 |
ありがとうございます。 チェックアウト先をWindowsのローカルにと考えていたのが 悪かったようです。Unix上にチェックアウトしてSambaで編集すれば 良いのですね。開発がサーブレットとjspとオラクルだったのもので 気軽にローカルでテスト環境を作るというのが難しかった為、サーバに 戻してテストしようと考えていました。 cronは便利そうですね。使った事ないですが勉強しようと思います。 以上、ありがとうございました。 |
>>2620 kouhei > 開発がサーブレットとjspとオラクルだったのもので気軽にローカルで > テスト環境を作るというのが難しかった為 なるほど。 でも、開発を各マシン上で行えると便利ですよ。 開発環境は各マシンで Windows+JBuilder+Tomcat+PostgreSQL 用 JDBC ドライバ (テスト用サーバで PostgreSQL が稼働) テスト & 本番環境は UNIX+Tomcat+Oracle てな感じで やっているところを見たことがあります。 Oracle と Tomcat を違いではまらないように、開発者は SQL を 直接書かず、DB 担当者が SQL を一括管理していましたが、そのかわり 「今から開発マシン落としま〜す」 「なんだ開発できねぇじゃねーか」 とかいうことがなくなりますし、同じファイルを同時にいじくって しまう危険もないですね。 まあ、ある程度の規模にならないとメリットも出てこないので、 kouhei さんの環境でもそうするべきかどうかはわかりませんが、 参考まで。 |
2つのファイルの比較について、 hogeとfooという2つのファイルが場合、 この2つのファイルから、同一の内容)行を出力するコマンドは どのようなものがありますか? |
2つのファイルの比較について、 hogeとfooという2つのファイルがある場合、 この2つのファイルから、同一の内容の行を出力するコマンドは どのようなものがありますか? |
下記で同じ質問をしたところ、回答をいただいて解決しました。 http://www.parkcity.ne.jp/~chaichan/qanda/qa2652.htm |
マルチポストですか・・・>あやの |
お世話になってます。すみませんがもう一つ質問させてください。 CVSでコミットと同時にメールで複数人に通知したいのですが、設定がよくわかりません。 一応、以下の内容をloginfoに加えればメールは送られるのですが コミットに1分以上、時間がかかってしまい使えません。 ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。 DEFAULT /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog エラー内容は 〜/user/local/lib/cvs/contrib/log line 172. です。 ----------------------------------------------------------- /user/local/lib/cvs/contrib/log ----------------------------------------------------------- close(OUT); die "Write to $logfile failed" if $?; close(MAIL); die "Pipe to $mailcmd failed" if $?; ← 172行目 ----------------------------------------------------------- 環境はLINUXです。 メール自動送信の方法をご伝授して頂けないでしょうか。 宜しくお願いします。 |
>>2626 kouhei > コミットに1分以上、時間がかかってしまい使えません。 > ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス 普通に考えると、commit に時間がかかる場所は mail コマンド以外には 考えられないので、まずはコマンドラインから % mail メールアドレス で試してみるべきでしょう。 > パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。 こちらも % Mail -s 'CVS update: $modulepath メールアドレス や % /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog などをコマンドラインから実行して、再現するかどうか試しましょう。 うちでは http://www-vox.dj.kit.ac.jp/nishi/cvsbook/ の mailto-committers.pl.txt を 使っています。 - CVSROOT に jcode.pl を cvs add。 - CVSROOT に mailto-committers.pl を cvs add。 - CVSROOT/checkoutlist に mailto-committers.pl jcode.pl を追加し、commit。 - CVSROOT/mailto-committers.pl を以下のように変更 --- CVSROOT/mailto-committers.pl 2001/04/05 07:05:28 1.1 +++ CVSROOT/mailto-committers.pl 2001/04/17 04:12:00 1.8 @@ -1,23 +1,24 @@ #!/usr/bin/perl # -# $Id: mailto-committers.pl,v 1.1 2001/04/05 07:05:28 mat Exp $ +# $Id: mailto-committers.pl,v 1.8 2001/04/17 04:12:00 mat Exp $ # Copyright (C) 1998 Hajime BABA. All rights reserved. # -require 'jcode.pl'; +require '/MASTER/cvs/CVSROOT/jcode.pl'; -$cvs = "/usr/bin/cvs"; -$rcsdiff = "/usr/bin/rcsdiff"; -$sendmail = "/usr/sbin/sendmail"; +$cvs = "/usr/local/bin/cvs"; +$rcsdiff = "/usr/local/bin/rcsdiff"; +$sendmail = "/usr/lib/sendmail"; sub parse_args { my(@tmp, $tmp); - $CVSROOT = ENV{'CVSROOT'}; + $CVSROOT = $ENV{'CVSROOT'}; + $CVSROOT =~ s/.*://; print $ARGV[0], "\n" if $debug; $ARGV[0] =~ s/ - New directory//go; @@ -49,6 +50,7 @@ sub set_header { my(@h, $file, @tmp, $date); open(HISTORY, "$tail -$files $CVSROOT/CVSROOT/history |") || die; @h = <HISTORY>; close(HISTORY); @@ -84,8 +86,8 @@ sub todate { sub mail_notification { my($file, $fullname, $old, $new, $tmp); - open(MAIL, ">> /tmp/commitlog"); + open(MAIL, "| $sendmail -odb -oem -t"); print(MAIL "$subject"); print(MAIL "$header"); - loginfo に DEFAULT $CVSROOT/CVSROOT/mailto-committers.pl %{sVv} $USER メールアドレス を追加し、commit。 |
mailto-committers.plの方法を試しましたが結果は同じで1分以上待ってから送信されます。 %mail メールアドレスは普通に送信されました。 もう少し調べてみます。 |
はじめまして、メールサーバの管理をしているのですが、 最近サーバがpopユーザ数に対応しきれず、 pop.lockがかかってメールが取れない事が頻繁に発生しています。 popデーモンはqpopperをつかっています。 そこで、このロックの解除方法で疑問があります。 qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。 無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。 POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。 ネットで調べると、.user-id.popファイルを削除する方法をよく見かけますが、 途中でセッションが切れてロックファイルが残ってしまったような場合、 この方法では受信し切れなかった分のメールはなくなってしまうのでしょうか? ほっとけば30分でロックファイルはなくりますが、 これもただ強制的にロックファイルを削除しているだけなのでしょうか? また、popのプロセスをkillする方法もありますが、この場合のロックファイルは どう処理されるのでしょうか? ご指導、宜しくお願いします。 |
>>2629 john 一口に qpopper と言っても、2.5x 系、3.x 系、4.0.x 系 などがあります。 ちゃんとバージョンを書きましょう。 > qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。 > 無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。 > POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。 4.0.3 では、 認証完了 → user-id.lock 作成 → user-id を .user-id.pop にコピー → user-id を 0 バイトに → user-id.lock 削除 でした。「pop.lock」ってどのことを指してますか? あるいは本当に 「pop.lock」というファイルがあるのでしょうか? |
お世話になります、小僧です。 質問をさせてください。 あるシェルをバックグランドで実行させ、 その後Window を閉じる、という処理を行おうとしています。 過去ログなどを参照した結果、実行コマンドは nohup ???.sh & でいいと思うのですが、終了のさせかたに疑問が残ります。 と、言うのも logout コマンドは受け付けてくれるのですが、 exit コマンドは 1 回目は受け付けてくれません。 ( 2 回叩くと exit してくれます・・・) 本で調べた結果、exit は「シェルスクリプトを終了」し、 logout は「ログインシェル」を終了させると書いてありましたが、 この意味するところがわからなく、困っています。 この 2 つのコマンドの違いが分かるか方がいらっしゃいましたら、 アドバイスをお願い致します。 −−− OS は AIX 4.3 シェルは ksh 調べた本は「UNIX クイックリファレンス」 です。 宜しくお願い致します。 |
>>2631 小僧 > logout コマンドは受け付けてくれるのですが、 > exit コマンドは 1 回目は受け付けてくれません。 それはまた謎な話ですね。 % nohup sleep 100 & % exit でも再現しますか? 単に (nohup を実行せずに) % exit だと? また、「受け付けてくれない」とはどういう状況を指してますか? 何かエラーメッセージは出ますか? |
>>2632 68user お世話になります、小僧です。 早速の返信、ありがとうございます。 68user さんが記述されているコマンドを実行してみました。 以下、結果です。 ---------- Start # nohup sleep 100 & [1] 37802 # nohup の出力を nohup.out に送信します。 # exit 実行中のジョブがあります。 ---------- End 情報が足りなかったのですが、 「受け付けてくれない」というのは "実行中のジョブがあります。"メッセージが 表示されて、終了されないことを指しています。 ちなみに、上記の状態でもう一度「exit」を実行すると、 上手く画面が消えてくれます。 宜しくお願い致します。 |
>>2633 小僧 > "実行中のジョブがあります。" それはシェルが 「実行中のジョブがあるけど、本当に exit で抜けてよいのか?」 と親切に聞いてくれているのです。 これはただの警告であって、抜けようと思えばいくらでも抜けられます。 二度目の exit は 「警告したにもかかわらず再度 exit しようとした」 ということで、今度は抜けることができます。 FreeBSD や Solaris では、端末を持たないコマンド (?) をバック グラウンドで実行している場合は、素直に exit させてくれるん ですけど、AIX はそうではないようですね。 |
>>2634 68user お世話になります、小僧です。 早速の回答、ありがとうございました。 別に exit と logout のコマンドが 違う訳ではなかったのですね。 今後も宜しくお願い致します。 |
はじめまして。検索していてここに辿り着きました。よろしくお願いいたします。 SunOS 5.7 cshでファイルをテープにバックアップする時に tarでやっているのですが、ファイル数が多くなって出来なくなって しまいました(argument too long)。 echo /パス/ | xargs tar cvf としても、だめみたいです(xargsは外部コマンドでした)。 ファイル数を減らすという他に何か良い方法はないでしょうか。 お忙しいところ誠に恐縮ですが、宜しくご教示ください。 |
>>2636 Yasuo Y > echo /パス/ | xargs tar cvf > としても、だめみたいです(xargsは外部コマンドでした)。 xargs tar cvf /dev/XXX ですよね? で、「だめ」とはどういう意味ですか? 少なくとも Argument too long は 出ないはずですが。 ただしこの場合、 % tar cvf /dev/XXX file1 file2 file3 .... % tar cvf /dev/XXX file1500 file1501 file1502 .... % tar cvf /dev/XXX file4000 file4001 file4002 .... と複数回 tar が実行されますが、それでいいのですか? 解決策は tar の -I オプションじゃないかと思います。 |
>>2635 小僧 > 別に exit と logout のコマンドが違う訳ではなかったのですね。 違いますよ。logout はログインシェルを終了させるとき、exit は シェルを終了させるときに使います。ログインシェルというのは、 Login: Password: というような認証の直後に起動したシェルのことです。 |
>>2637 68user 68Userさん、ありがとうございます。 tar cvf /dev/XXX -I /パス名1 -I /パス名2 -I /パス名3 として実行してみたのですが、変な文字がコンソールにいっぱい出てきて すぐ止めました。 それから、Argument Too Longも相変わらず出ています。 せっかく教えていただいたのに解決できませんでした……。 たくさんあるファイルをテープにバックアップしている ところは、一体どうやってやっているんでしょうか?? |
>>2639 Yasuo Y > tar cvf /dev/XXX -I /パス名1 -I /パス名2 -I /パス名3 man tar しました? -I の意味を調べました? あと、別解としては、 % echo * | xargs tar rvf /dev/XXX かなぁ。うまくいくかどうかはわかりませんが。 |
はじめまして UNIXについて質問なのですが、a.txt と b.txt というファイルがあり aの中には abcdefg という内容があり bの中には hijklmn という内容があります。そこで a の中に b の内容をコピーしたいのですが、どのようにコピーしたらよいのですか、教えてください。 行のコピーの仕方ってあるんですか? |
>>2640 68user とりあえずうまくいってるようです。 Cシェルの実行中に出てきたエラーメッセージなのですが、 Argument Too longは、他のところで出ているもののようでした。 どうもお騒がせしました。 |
ども初めまして。 http://x68000.startshop.co.jp/%7E68user/cgi-bin/<script>alert("----")</script> のエラーページでいま話題のクロスサイトスクリプティングの脆弱性を確認出来ました。 たぶん、error.cgiの原因と思われます。 私も利用させてもらっていますがperlのことは分かりませんので Fixされるようお願いします。 |
>>2643 ある厨 なるほど。外部からの情報をちゃんとチェックしてないな。 ふむふむ。賢い |
File System full で、しばらくこのサーバにアクセスできない状態に なってました。 >>2643 ある厨 > のエラーページでいま話題のクロスサイトスクリプティングの脆弱性を確認出来ました。 ご指摘ありがとうございます。< > を < > に置換するようにしました。 あと、Host: ヘッダにも全く同じ脆弱性がありましたので直しました。 http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/error.cgi >>2641 あき いまいちやりたいことがわかりません。例をあげて説明して下さい。 |
はじめまして。 UNIXを始めたばかりの初心者なんですが、 あるフ゜ロク゛ラムから、その日の日付の入ったファイル名を持つファイルを 自動生成させたいのですが、 どうもうまく出来ないんです。 というのも、僕はdateの情報をcutもしくは、date +%y%m%d"などで、 その日の日付を抜き取り、変数に入れた後、 touch $[変数名] と、そんな感じでやってみたんですが、 これって、パイプを使っても変数の中に日付って入らないですよね? 出来れば、[日付入りファイル名]の作り方を教えて頂けませんか? ぜんぜん違うアプローチでその方法があるならそちらでも一向に構いませんのでm(__)m |
>>2646 knockout 言語は何ですか。 |
返答どうもです。 ksh見たいです(w |
返答ありがとうございます。 えっと、「echo $SHELL」と入力して、 /usr/bin/ksh と出ますので、kshですね。 すいません、こんなふざけた返答で(^^; |
>>2648 knockout nowdate=`date +%y%m%d` echo $nowdate と `` を使います。 パイプを使うこともできなくはありませんが、無駄に長くなります。 複数行を処理する必要がないなら `` でよいでしょう。 date +%y%m%d | while read line do echo $line done |
出来ました!! なるほど``ですね。 早速、ホンチャンのプログラムに組み込んできます。 ありがとうございましたm(__)m |
度々すいません。 えっと、さっきの返答してもらった最後の記述 date +%y%m%d | while read line do echo $line done は、何を行っているんでしょうか? 僕の解釈ではdateで表示したのを、変数lineに代入、 その後がいまいち理解が、 echo $lineは分かるんですけどね、 doとdoneを使っている意味が はっきり分からないんです。 「それぐらい調べろ」っていわれそうですが、 どうか一つ宜しくお願いします(^^; |
はじめまして。LINUXをはじめたばかりのものです。 c言語用FTPクライアントのプログラムを ダウンロードしたのですが、 実行方法がいまいちわかりません。 他のサイトでサーバ、クライアントのファイルは それぞれで実行すればよかったのですが、 今回の分はFTPサーバを自分で作らなければ ダメなのでしょうか? かなり初歩的な質問だと思いますが 教えてください。 |
リンク先があるかどうか知るにはどうすればいいですか? 具体的には他人に書き込んでもらったアドレスの、 例えばhttp://www.a.com/a/a.gifの絵があるかどうか知りたいのです。 それと、絵の大きさも知りたいです。 それで大きすぎたら表示しないようにしたいのですが。 よろしくお願いします。 |
はじめまして、apexと申します。 今、Cシェル(OSは、ソラリス8)で、簡単なプロセス管理ツールを作成しています。 この時、以下のことでうまく動作せず悩んでおります。 もし、おわかりになれば教えてください。 1:Cシェル内で、rootユーザになる方法。 要するに、パスワードをシェル内に記述して、コマンドラインに渡せ るかどうか? 2:awkにて、プロセスを切り出す方法 「ps -ef | grep ABC」からABCを認識させ、ABCプロセスが存在しな ければ、起動する。 この時、ps-efコマンドを実行した時の、第2パラメータが ”root”で、第9パラメータが”ABC”であるものを切り出したい。 以上、お手数ですが、よろしくお願いします。 |
>>2655 apex 1についてですが、 expectというコマンドがあれば、これを使ってみてはどうでしょうか。 ここにサンプルがありますね。 http://www.math.s.kobe-u.ac.jp/~kodama/tips-expect.html |
>>2652 knockout > doとdoneを使っている意味がはっきり分からないんです。 while 〜 do 〜 done でひとまとまりのループです。なぜループを使うかと 言うと、複数行の出力を1行ずつ取り出して処理しているからです。 >>2653 H.M > c言語用FTPクライアントのプログラムをダウンロードしたのですが、 > 実行方法がいまいちわかりません。 http://X68000.startshop.co.jp/~68user/net/c-ftp-1.html ですか? このページに書いてある通りに実行すれば、引数で指定した FTP サーバに接続しにいくはずですが…。 >>2654 田中 > 具体的には他人に書き込んでもらったアドレスの、 > 例えばhttp://www.a.com/a/a.gifの絵があるかどうか知りたいのです。 リンクチェッカやダウンローダを使います。 > それと、絵の大きさも知りたいです。 ヘッダを解析します。各種ライブラリやコマンドを使ってもいいです。 > それで大きすぎたら表示しないようにしたいのですが。 if 文で判断します。 # 環境も何もわからないと、この程度のことしか言えません。 >>2655 apex > パスワードをシェル内に記述して、コマンドラインに渡せるかどうか? できなくはないです。 >>2573 68user を参照。 が、コマンドラインからだと (端末を握っている場合、という意味) うまく いかないので、やめといた方がよいでしょう。sudo や expect を使うのが 一番いいです。 > この時、ps-efコマンドを実行した時の、第2パラメータが”root”で、 > 第9パラメータが”ABC”であるものを切り出したい。 ps -ef | awk '$2=="root" && $9=="ABC" {print}' ps -ef | awk '$2~/^root$/ && $9~/^ABC$/ {print}' あたりでしょうか。 |
2654番の田中です。 お答え有難うございました。 言葉足らずですいません。 perlでcgiを勉強しながら製作中です。 でもう一度、 リンク先があるかどうか知るにはどうすればいいですか? 具体的には他人に書き込んでもらったアドレスの、 例えばhttp://www.a.com/a/a.gifの絵が存在するかどうか 知りたいのです。 それと、絵の容量も知りたいです。 それで大きすぎたら表示しないようにしたいのですが。 よろしくお願いします。 |
>>2658 田中 > リンク先があるかどうか知るにはどうすればいいですか? wget などのダウンローダやリンクチェッカを使います。現在のサーバに それらのソフトが入っていなければインストールします。あるいは libwww などの perl モジュールをインストールするのもよいでしょう。 それもできないなら、 http://www.studyinghttp.net/Hyd_HTTP.html がお勧めです。 > それと、絵の容量も知りたいです。 「容量」とはファイルサイズのことですか? 前の質問では「大きさ」と あったので縦横のサイズかと思ったのですが。 ファイルサイズなら Content-Length ヘッダを見ます。Content-Length ヘッダが付かない場合もあるので、その際は実際にダウンロードして そのサイズを調べる)。 縦横のサイズなら、file コマンドや ImageMagick 付属の identify コマンドを使います。 % file hoge.jpg hoge.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), 72 x 72 % identify hoge.jpg hoge.jpg JPEG 25x40 DirectClass 8-bit 912b 0.0u 0:01 > それで大きすぎたら表示しないようにしたいのですが。 「表示」というのも曖昧です。一度サーバ側にダウンロードしてから 表示させるのか、あるいは <img src="..."> を出力するだけなのか。 どちらにせよ、ファイルサイズなり縦横のサイズなりを if 文で 判断すればよいでしょう。 |
>>2658 田中 また無駄な回答をしてしまった。 http://script.lovely.to/bbs/infolng.cgi?print+200204/02040010.txt もうこないでね。 |
大学でUNIXを勉強しているのですが… ただ教授の命令どおりにコマンドを入力して実行しているだけで、 何をやってて何をするためにUNIXを勉強しているのか分かりません。 大体パソコンをかまうのにも慣れてない自分は、 「この〜〜〜を、〜〜〜して」 ※〜〜〜→聞きなれない英語 といわれ続けちんぷんかんぷんです。 どうしたら上手くUNIXを学べれるのでしょうか? もしアホでも分かるお勧めの本とかあれば紹介していただきたいのですが… |
>>2661 しなくろ 興味がなければ学ばない。でも単位を落とさないように暗記だけする。 ってのがいいんじゃないでしょうか。興味がわかないことを勉強しても 時間の浪費にしかならないと思います。 興味はあるけどわからないって場合は…どうしたもんでしょうかねぇ。 |
Fixども。 設定完了しましたのでお礼まで。 |
はじめまして。とても参考になります。 telnetのところでWindowsではtelnetでホームページはみれないのでしょうか? |
>>2664 なは > telnetのところでWindowsではtelnetでホームページはみれないのでしょうか? http://x68000.startshop.co.jp/~68user/net/win-telnet.html では どうでしょうか。 と言っても Windows 2000 の telnet.exe では設定方法が違う んですけどね。 |
perlについてですが、無名のハッシュ又は配列のレファレンスに、配列要素を追加する方法を教えてください。ついでに配列の参照の仕方も教えもらえると有りがたいです。 以下のソースは変数を@line_0 .. 9までと変数を9個使っていますが、これを$line_{0} .. {9}と一つの変数にさせたいと思っています。 while (<IN>) { local($date) = (split /<>/)[0]; push (@{'line_'.$date},$_); } foreach (0..9) { foreach $line (@{'line_'.$_}) { print $line; } } |
>>2666 a-jmj ん〜、$line_{2} で 2 行目のデータが得られればいいのですか? そのとき得たいデータは日付 ($date) と行全体? |
説明不足ですいません。 1<>aaaa<> 1<>bbbb<> 2<>cccc<> というデータがあったとしたら、 $line_{1}[0] = '1<>aaaa<>' $line_{1}[1] = '1<>bbbb<>' $line_{2}[0] = '2<>cccc<>' といった風にしたいのですが、以下のソースではエラーが出てしまいます。 open(IN,"file"); while (<IN>) { local($date) = (split /<>/)[0]; push (@line_{$date},$_); } colse(IN); これをする目的は下のように全体のデータを何度も回転させたくないので、 データを分別しときたいのです。 open(IN,"file"); @lines = <IN>; colse(IN); foreach (0..9) { print $_; foreach $line (@lines) { my($i,$data) = split /<>/,$line; print $data if ($i == $_); } } 無名のリファレンスを使いたい理由としては、@{'line_'.$date}といった感じの変数を使いたくないのと、効率を考えたらリファレンスが使えないことです。 |
>>2668 a-jmj こんな感じでしょうか。 open(IN,"file"); while (<IN>){ chomp; local($date) = (split /<>/)[0]; push(@{$line_{$date}}, $_); } close(IN); foreach $date (sort keys %line_ ){ foreach (@{$line_{$date}}){ print "$_ "; } print "\n"; } 実行結果: 1<>aaaa<> 1<>bbbb<> 2<>cccc<> |
どうもありがとうございます。 ええそうです、求めていたのはこれです。 無名も普通のリファレンスみたいに使うのですね。 なかなかリファレンスを詳しく書いた資料がないものですね。 実際の運用には8桁の日付で、分別させているのですが、以前の方法でしたら、 use strict;を使おうにも変数名が不規則なうえ、指定してやらなければ成らな い変数が膨大な数になってしまうことが問題でした。 その他に良い分別方法があったら教えていただけたら、幸いです。 |
>>2670 a-jmj > その他に良い分別方法があったら教えていただけたら、幸いです。 データ構造を変えていいなら、各行に一意の番号を付けて $data{123}{DATE} = '20020101'; $data{123}{NAME} = 'hoge'; $data{123}{MAIL} = 'foo@bar'; などとするのが好みです。 データ構造を現行のままにするなら案の通り $data{20020101}[0] = '1<>aaaa<>' とするのも悪くないでしょう。 あるいは最初に <> を解析しておいて $data{20020101}[1]->{NAME} といった形でアクセスできるようにするという手もあります。以下サンプル。 my %data; open(IN,"file"); while (<IN>){ chomp; my ($date,$name,$mail,$content) = split /<>/; my %hash; $hash{NAME}=$name; $hash{MAIL}=$mail; $hash{CONTENT}=$content; push(@{$data{$date}}, \%hash); } close(IN); foreach $date (sort keys %data ){ print "$date: "; foreach my $ref_hash (@{$data{$date}}){ print "$ref_hash->{NAME} $ref_hash->{MAIL} $ref_hash->{CONTENT} "; } print "\n"; } print "おまけ: $data{20020101}[1]->{NAME}\n"; データファイルの内容: 20020101<>名前1<>メールアドレス1<>発言内容1 20020101<>名前2<>メールアドレス2<>発言内容2 20030203<>名前3<>メールアドレス3<>発言内容3 実行結果: 20020101: 名前1 メールアドレス1 発言内容1 名前2 メールアドレス2 発言内容2 20030203: 名前3 メールアドレス3 発言内容3 おまけ: 発言内容2 ただし、perl でちょっと凝ったリファレンスを使い出すと、とてつもなく ソースが汚くなるので、クラスを使いたくなるかもしれません。そして クラスを使い出すと、perl の OO に嫌気がさして ruby を使い出すかも しれません。 なので、ほどほどのところでやめておく方がいいのかも。 |
始めまして。C-CGI システム構築をHTMLのタグレベルで実現するツール の紹介ページが shino.server-club,net/index.htm にあります。皆様の 御参考になればとCMまがいの書き込みを致しました。 |
>>2672 Shino こんなもので金が取れると思ってるの?? なんか最初からあやしげな臭いがプンプンしてたけど、やっぱり。。 http://shino.server-club.net/cgi-bin/DS.cgi?COMMAND=Html&HTML=../../../../../../../etc/passwd 注:Referer。 汚染チェックしてね。 |
名無しさん様、大変失礼を致しました。 |
おひさしぶりですみません。質問です。 よく、インターネット(Web、メール)で (いわゆる)半角カナを使ってはいけないといわれますが、 この理由が、 ・インターネットは ASCII 以来、7ビットしか通さない伝送路が 使われてきたので、7ビットコードを使うのが望ましい ・日本の場合 ISO-2022-JP が標準 ・ISO-2022-JP は、4つの面に(いわゆる)半角カナ以外の コードが割り当てられている。 ・つまり、ISO-2022-JP には半角カナが「ない」 ・ないものは使ってはいけない という風に覚えていましたが、 UNIX の mule や Windows の xyzzy で ISO-2022-JP を指定して (いわゆる)半角カナを入れるときの、 「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」 というコード系は、何に規定されているものなのでしょうか。 こんなの、ちょっと調べろよって話だと思うんですが、 調べ方が悪いのかこれだ、という情報に当りません、、。 |
>>2675 ふくし > 「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」 > というコード系は、何に規定されているものなのでしょうか。 何にっていうのは、どの規格で定められているかってことですよね。 http://www2d.biglobe.ne.jp/~msyk/charcode/jisx0201kana/ には JUNET方式のエンコーディング方式を素直に拡張すれば、この エンコーディング方式になる。 とありますが、何をどう素直に拡張すればこうなるのか (僕の知識 不足のため) 理解できません。 http://www.kanzaki.com/docs/jis-mail.html には RFC1468には記載されていませんが、定義からESC ( I が7ビットの カタカナを指示(designate)するエスケープシーケンスとなるので、 とありますが、どこをどう読めば ESC ( I が 7bit カタカナを指示する ことになるのか これまた (僕の知識不足のため) 理解できません。 わかったら僕にも教えて下さい。 |
>>2675 ふくし > よく、インターネット(Web、メール)で(いわゆる)半角カナを > 使ってはいけないといわれますが、 おっと、見逃してた。ここで「web」を挙げているのは誤りです。 インターネット (≒ TCP/IP) は 8bit を通します。FTP も HTTP も 8bit through です。過去 7bit しか通さない実装が多かったのは SMTP で、7bit しか通らないところに日本語を通そうという苦肉の 策が、後の ISO-2022-JP につながる JUNET コードです。 よって、web で半角カナ使用禁止という話はありません。もちろん web で Content-type: text/html; charset=ISO-2022-JP としているならば半角カナは使えませんけれども。 ちなみに、個人的には半角カナは嫌いでしたが、2ch で AA を見てると、まぁ 半角カナもいいかなと思い始めていました。が、半角カナは EUC-JP と Shift_JIS でバイト長が違うため、項目長を事前に決めておかなければ ならない DB では何かとトラブルの元です。よって、やっぱり半角カナ 嫌いに戻ってしまいました。 |
そっかー。68user さんもわからないと聞いて 少なくともつまんない質問ではなかったとわかって なんかホッとしました(^o^) マルチポストになりますが、別所で聞き、なにかわかったら また書きます。ありがとうございます。 他の方も、なにかありましたらご教示ください。 |
>>2675 ふくし >>2676 68user お久しぶりです。 http://euc.jp/i18n/charcode.ja.html によると、 >終端文字と文字集合の対応は登録制になっており、 ECMAという組織が登録簿を管理して います。 (略) >・94文字集合 (略) >I > JIS X 0201カタカナ >J > JIS X 0201ローマ文字 とあります。 先にECMAが決めたのか、誰かが既に決めたのをECMAが登録したのかは、 わかりませんが。 |
>>2679 へにか なるほどなるほど。 http://www.ecma.ch/ecma1/STAND/STANDARD.HTM のどれかにその記述があるのでしょうか。PDF しかないようなので 中身は見ていませんけれども。 ちなみに G0 とかロッキングシフトなども理解してないんですが (どこの 解説を読んでもよくわからん)、初心者向けの解説がどこかにないもので しょうか。 |
へにかさん、ありがとうございます。 わたしも xyzzy ユーザーズMLで質問を投げました。 いまメーラーが使えないので、記憶でサマリーすると、 ・ふくしが ISO-2022-JP の4つの面にそれぞれ半角カナ以外の コードが入っていると思っているのはカン違いで、 ISO-2022-JP は G0 集合だけを使い、エスケープシーケンスで 切り替えて使う(G1〜G3 は使用禁止) ・そこに割り当てられるコードが (RFC 1468 より引用) > Esc Seq Character Set ISOREG > ESC ( B ASCII 6 > ESC ( J JIS X 0201-1976 ("Roman" set) 14 > ESC $ @ JIS X 0208-1978 42 > ESC $ B JIS X 0208-1983 87 の4種類で、7ビットカナ(JIS X201 の右半分)は 意図的にはずされている ・JIS X201 のコード表と、終端記号の I は、 へにかさんも書いておられますが ISO の登録簿にある。 http://www.itscj.ipsj.or.jp/ISO-IR/ で登録されているものは確認できる。 ・登録を行う=>終端記号が割り当ててもらえる、 という流れで、登録作業は ISO/IEC JTC1/SC2 の事務国である日本(!) ということだそうです。 ESC(I の歴史は ISO-2022-JP より古く、 ISO-2022 のフルセットを使えば半角カナが使えるように (だと思うんですが、、) 定義されているようです。 他にもいくつか ISO-2022-JP の半角カナ拡張はありますが (G1 集合に半角カナがあるとみなして、 往年の ISO 646 のように SI/SO で切り替えたり。 これは Microsoft Internet Mail 方式?) ・G0 のみしか使わない ・ISO の登録簿にあるコード表と終端文字を使う という点で、最も正当で自然な方法と ESC(I 式が みなされているそうです。 で、推奨される文献としては http://euc.jp/i18n/charcode.ja.html#chap4 が上げられていました。 xyzzy の ML はアーカイヴが公開されているので、 教えてくださった方との実際のやりとりはそこで読めると思います。 いかがでしょうか。 こんなところでぼくは満足ですが、、。 で、2ch の AA ってなんですか?(^^) |
もう、だめ・・・ CPU使用率の確認でsar -vってのあるんだけど、そのなかの file-szはシステムファイルテーブルの現在サイズ、および最大サイズ ってとこまではわかってるんですけど、 システムファイルテーブルって何を管理してるテーブルなの? だれかおしえて・・・ システムファイルだよっていうのは無しで。 |
>>2680 68user あいにく、僕もpdf-readerを持っていないので、代わりに以下の文書を見つけました。 http://www.io.com/~kazushi/encoding/cslist.html http://homepage1.nifty.com/emk/halfkana.html http://web.kyoto-inet.or.jp/people/tomoko-y/biwa/wnn/iso2022.html >最新のエスケープシーケンス一覧と、それに対応する各文字集合表は、 >ECMA から直接、入手可能である。スイス連邦にあるECMA の連絡先は、以下の >とおりである。 > > メールアドレス:helpdesk@ecma.ch > >住所: ECMA RUE DU RHONE 114 > CH-1204 GENEVE SUISSE また、僕は全部読んでないし、また、僕が理解できるかどうかは怪しいですが、 http://euc.jp/i18n/charcode.ja.html よりも良さそうな解説は、あいにくながら、見たことありません。 >>2681 ふくし 記憶に頼っているとはいえ、見事な纏めですね。あとでxyzzyのメーリングリスト、 あさってみますね。 |
>>2681 ふくし > で、2ch の AA ってなんですか?(^^) こんなのです。 http://members.tripod.co.jp/maruheso/aadic/ Ascii Art と言っても、全然 Ascii じゃないですけど。 >>2682 ぐっさん > システムファイルテーブルって何を管理してるテーブルなの? その時点で使用 (open) している i-node の数、じゃなかった でしょうか。違ったっけ。 |
はじめまして、サトと申します。 unixについて知識のある方、お助け下さい。。 会社のunixサーバを壊してしまいました。。 とある理由で、/usr/lib/libdl.so.1 が何者かも知らずに mv libdl.so.1 libdl.so.1.org などと実施してしまいました。 (osパッチを当てた後くらいから、コンパイルのリンクエラー でlibdl.so.1うんぬんと出てきたので、このライブラリだけ旧版に 戻してもみうと思って行ってしまいました。。) そしたら、それ以後のユーザーコマンドが一切実行できなくなりました。。 ユーザーコマンドのほとんどが libdl.soをリンクしていたようです。 よって、mvで戻そうとしてもmvもcpも起動できなくなって戻せない状態です。。 OSの再インストールを覚悟していますが、この状態で何か対処方法は ありますでしょうか? どなたかお助け下さい。。よろしくお願いします。。。 |
>>2685 サト OS は何ですか? 「UNIX」と言ってもいろいろありますので。 Solaris ならこんな感じで。 http://www.google.com/search?q=solaris+%95%9C%8B%8C+CD-ROM+mount&hl=ja また、HDD を別の UNIX マシンにつないで、適当な場所 (/hoge とか) に mount して、 # mv /hoge/lib/libdl.so.1.org /hoge/lib/libdl.so.1 などとする手もあります。 |
>>2686 68user 68user様、レス大変ありがとうございます。 どうにもならないのかと思っていたので、少し安心しましたです。 昨日から相当凹んでましたので。。 OSはソラリスで、マシンはSUNウルトラだっと思います。 (ソフト開発専門なのでマシン環境などはうとくて。。) 週明けにマシン環境の担当と相談してみます。 ありがとうございました。 |
HP−UNIXでman sarを実行したところオプションvのところで ”text-sz (該当しません)”となっていましたがtext-szは もともと何の監視のためにあったのか知ってたら教えてください。 |
お世話になります。トータルで3回目の質問になるのですが、 perl で例えば <>aa<>bb<>cc<>dd<> ←1行目 ee<>ff<>gg ←2行目 このようなデータがあった場合 <>aa <>bb <>cc <>dd <>ee <>ff <>gg のように出力させるコードを教えてください。 よろしくお願いします。 |
<> が区切り文字だと事前にわかっていれば、 chomp で改行を除き、 <> で split して、<> を改めて付加して出力、ですね。 通常のフィルターの書き方はわかりますか? chomp、split の使い方は man perlfunc か、 ラクダの本を見てください。 (どっかで日本語の man perl が公開されてたな) <>が区切り文字だとわかっていなければ、無理だと思います。 というのは、たとえば 1 行目で、<> が区切りなのか、 <>a なのか、<>aa なのか、機械には不明だからです。 |
以下はどうでしょうか? #!/usr/local/bin/perl my(@array) = ( "<>aa<>bb<>cc<>dd<>", "ee<>ff<>gg" ); foreach $aref ( @array ) { $str .= $aref; } $str =~ s/\</\n\</g; $str =~ s[ ^\n ]{}gsx; print "$str\n"; |
ふくしさん、aaaさん、 お二人のコードを参考にして解決できました。 ありがとうございました。 |
>>2691 aaa これはちょっと参考になりませんねぇ。。(aaaさんゴメン) ちょっと間違ってます。 ("[*1]<>aa<>bb<>cc<>dd<>[*2]", "[*3]ee<>ff<>gg" 与えられた配列の、*1〜3の所に項目が一つ増えただけで思ったようには動かないと思う。。 1つの変数にぶち込んだ時点で、*2 *3の区別ができなくなる。 そして、 $str =~ s[ ^\n ]{}gsx; ですが、、^\nでマッチするところは、s(単一行として扱う)が付いてるから、頭の所("\n<>aa...")の\nが取れるだけだし、、gを付ける必要は無い ここでまた一つ問題がある。。多分、motoさんの発言を見ると、*1の部分にも項目が来ると思われる。。"xx<>aa<>bb..." そうすると、1行目に<>が入らず、、 xx <>aa ... ってなる。。。 あともう一つ。@arrayは配列だって分かるから括弧を付ける必要は無い my @array = (...)こんな感じ |
自分で書いてみた。 my @target = ("<>aa<>bb<>cc<>dd<>", "ee<>ff<>gg"); my @result = map { my @tmp = split(/<>/); shift(@tmp) if $tmp[0] eq ''; @tmp; } @target; foreach (@result) { print "<>$_\n"; } |
HP-UNIXで過去の日付を表示させる方法しりませんか? ちなみにenv TZ=JST-9 dateでは1日分しかさかのぼれないので、 他の方法で知っている人がいれば教えてください。 |
>>2695 G shellutils で GNU 版 date をインストールするか、perl で localtime(time()-60*60*24) などとするのがお手軽なんじゃないでしょうか。 |
>>2696 68user 返答ありがとうございます。 なにぶん初心者なもので、アドバイスの意味があまりわからないの ですが、これから調べてやってみようと思います。 会社の環境ゆえ、インストールはできないのでperlの方を参考に させていただきます。自力でわからなかったときはまた、よろしく お願いいたします。 |
>>2689-2694 〜嫌がらせ編〜 「暗黙の初期化? 怖いけどイイ!」 while (length($a = substr("<>aa<>bb<>cc<>dd<>" . "ee<>ff<>gg", $b++, 1))) { uc($a) ne $a && length($c .= $a) == 2 && print "<>$c\n", $c = '' } 〜お気楽編〜 「パターンマッチマンセー!」 $a = "<>aa<>bb<>cc<>dd<>" . "ee<>ff<>gg"; while ($a =~ /(\w\w)/g && print "<>$1\n"){} 〜メモリ倹約編〜 「入力元即処理!」 (push @x, "<>aa<>bb<>cc<>dd<>"), push @x, "ee<>ff<>gg"; map {while ($_ =~ /(\w\w)/g && print "<>$1\n") {}} @x; #またはファイルから読み込む場合 while (<FILEHANDLE>) {while ($_ =~ /(\w\w)/g && print "<>$1\n") {}} |
よく拝見すると"Perl"とは入ってないですね 笑 >UNIX、CGI、ネットワーク、Java Servlet についての掲示板 |
はじめまして HTTPプロトコルを利用したファイル転送について教えて下さい。 私はグラフィックデザインに関わっているので、インターネットを介して 画像や映像など比較的大きなデータを日常的にやり取りしています。 今は、ICQやMSNメッセンジャーのファイル転送を利用しているのですが 相手のファイアーウォールやルーターの設定から接続出来ない事もあります。 また接続が切れてしまった場合、続きから再開できるレジューム機能についても解説して戴けないでしょうか? 宜しくお願いします。 |
はじめまして。石田と申します。 ★件名★「UNIXの部屋」公開ありがとうございます。 *現在、私はlinux(Unix)のシェルプログラミングを勉強中です。 *ところが、manコマンドでは全然分からないので、 GoogleやMLアーカイブ検索して調べていましたが、 *こちらのUNIXの部屋は非常に分かりやすく参考になります。 *分かりやすいポイントは、 1)パラメータの意味が日本語で分かりやすく書いてある 2)具体例がメッセージなど併せて書いてある。 ところが非常に分かりやすいです。 *私が今作っているスクリプトは 1)redhatのupdateのFTPサイトと自分のpcの rpmパッケージリストを持って来て、マッチングして、 2)不足分のファイル一覧を作成 この中から必要なファイルをFTPでダウンロード *とにかく、パッケージのアップデートは手間がかかるので、 なるべく自動化しようと思っています。 * これからも「UNIXの部屋」がんばってください。 |
>>2699 KL > よく拝見すると"Perl"とは入ってないですね 笑 もちろん Perl は UNIX であります (^^ >>2700 パルテノ > 続きから再開できるレジューム機能 HTTP にはレジュームのような高級な機能はありません。二回目以降の 接続時に、単にデータの開始バイトを指定しているだけです。 接続が切れた場合は、ローカルに落したファイルサイズを見て、 たとえば 1000バイトまでダウンロードできているなら GET / HTTP/1.0 Range: bytes=1000- とします (ファイル先頭は 0 バイト目)。 http://www.studyinghttp.net/rfc_ja/2616/sec14.html#sec14.35 >>2701 石田安弘 > *こちらのUNIXの部屋は非常に分かりやすく参考になります。 ありがとうございます。改善点などありましたら指摘して下さい。 |
はじめまして、くろうです C言語初心者がいきなりソケットプログラムを作っているのですが どんな本を見ても、いまいちわからないことがあるので質問します。 UNIXで最大1Mハ゛イトの可変ファイルをソケットで受信しているのですが ソケットで受信する時、recvのバッファーのサイズはどのくらいとるのが適正値なのでしょう。 char buf[4096]; rtncd = recv(sockid,buf,sizeof(buf),0); 受信したテ゛ータは連結編集してます。 よろしくおねがいします。 |
>>2703 くろう 100 バイト単位で値を変えて、転送速度を計りましょう。 それが面倒なら 4096 でいいんじゃないでしょうか。 # 僕は面倒なので 4096。 |
皆さんはじめまして。ゆくまといいます。 いつも「UNIXの部屋」を活用させて頂いております。 現在、UNIXの*について調べているのですが、 もしご存知の方がいらっしゃったら教えていただけますでしょうか? たとえば、 >ls file01.dat file02.dat >cat * としたとき、catの表示順は必ず、 file01.dat の次に file02.dat である(つまりソート順)、と決まっているのでしょうか? もしくは不定なのでしょうか。 よろしくお願いいたします。 |
>>2705 ゆくま > file01.dat の次に file02.dat である(つまりソート順)、 > と決まっているのでしょうか? はい、ソートされます。sh・csh・tcsh・bash・zsh・ksh など全てのシェルでソートされるはずです。 ただし cat *2* *1* だと file02.dat file01.dat の 順になります。 |
>>2706 68user レスありがとうございます。 これってやはり考えるまでも無い当たり前のことなんですかね。 これまで何年かUNIXを使ってきて、そうだとは思っていた のですが、改めて調べてみたところ、そのことを明記している ようなドキュメントを見つけることができなかったのです。 おそらく何らかのパブリックなドキュメントには明記してある ことだとは思うのですが。。。 ご存知の方はいらっしゃいますでしょうか? |
>2707 > おそらく何らかのパブリックなドキュメントには明記してある > ことだとは思うのですが。。。 手元にあるマニュアルを調べてみました。 FreeBSD 4.5-RELEASE の tcsh(1) ファイル名置換 単語が `*', `?', `[', `{' のいずれかの文字を含む場合、また は 先頭が `~' で始まる場合、その単語はファイル名置換 (ある いはグロブ (globbing) と呼ばれます) の候補になります。この ような単語をパターン (グロブパターン) と見なし、そのパター ンにマッチするファイル名のリストをアルファベット順で整列し たもので置き換えます。 FreeBSD 4.5-RELEASE の csh(1) ・・・発見できず Solaris2.6 の sh(1) [ファイル名の生成] コマンド実行に先立ち、各コマンドワードは、 *、?、および [ を 含んでいないかチェックされます。これらの文字のいずれかがある と、そのワードはパターンとみなされます。このワードは、パター ンと一致する、辞書編集方式の順にソートされたファイル名に置換 されます。 Solaris2.6 の csh(1) ・・・発見できず bash-2.0.5a Pathname Expansion After word splitting, unless the -f option has been set, bash scans each word for the characters *, ?, and [. If one of these characters appears, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of file names matching the pattern. |
>>2708 68user > FreeBSD 4.5-RELEASE の csh(1) ・・・発見できず FreeBSD 4.5-RELEASE の sh(1) ・・・発見できず の間違いです。 |
>2708 >手元にあるマニュアルを調べてみました。 わざわざありがとうございます。 なるほど!灯台下暗しでした(申し訳有りません、、、)。 ちなみにこちらの手元も調べてみましたところ、 Solaris7 のcsh(1) [ファイル名置換] *、?、[、または { のうちのいずれかの文字を含むクォートされ てい な い ワード、または ~ で始まるワードは、以下のように アルファベット順にソートされたファイル名のリストに展開 (グ ロビングとも呼ばれる) されます。 とありました。 お手数をおかけしました。 助かりました! |
>2710 追記です。 当方のSolaris2.6のcsh(1)にもSolaris7と同じ表記が見つかりました。 ということは、68userさんの環境と異なるのでしょうか? |
HP-UXのawkコマンドのパターン指定ではシェル変数は使えないのでしょうか?下記のような条件で、いろいろ形を変えて試して見たのですがまったくうまくいきません。分かる方教えてください。 例:awk '$1<=${hensuu}{print $0}' file.txt ※${hensuu}=1,2,3,4,5・・・・・・ |
>>2711 ゆくま > 当方のSolaris2.6のcsh(1)にもSolaris7と同じ表記が見つかりました。 こちらの Solaris2.6 にも同じ記述がありました。流し読みしたので 見逃していたようです。 >>2712 G シェル変数は、シェルのための変数であって、シェル以外からはどうやっても 参照できません。よって、 % env MAX=123 awk '$1<=ENVIRON["MAX"]{print $0}' file.txt などと環境変数を使うか、 % awk -v max=123 '$1<=max {print $0}' file.txt で変数を指定しましょう。 |
>>2713 68user ありがとうございました。教えていただいたコマンドで上手くいきました。 |
こんにちは、時々見させてもらってます PerlでIO::Socketを使っているのですが、 HTTPのPersistent connectionの様な、「サーバーから一旦データが 送られてきた後のコネクションは維持しつつも無通信な状態」 といった状態をプログラム側で判別できずに困ってます この間にsysreadなどを使うとデータが送られてこないためずっと 待ってしまいますので… IO:Selectのcan_read($timeout)も試してみたのですが、 この様な状態ではしっかりとソケット識別子を返してしまう みたいで結果としてsysreadの所に行ってしまってそこで止まってしまう 様な感じでした。 何か良い知恵はないでしょうか?? まあHTTPならcontent-lengthを見て1オブジェクトの受信の終わりを判別すれば良いんでしょうけど… |
>>2715 STP > この様な状態ではしっかりとソケット識別子を返してしまうみたいで ということはないと思いますが、問題が発生する最小限の プログラムを見せていただければ何かわかるかもしれません。 # あと、OS や perl のバージョンなども。 |
こんにちは、時々見させてもらってます。 PerlでHTTPSクライアントを作成したいのですが サンプルありますでしょうか |
>>2717 よー LWP? |
>>2717 よー 何をどう書いたのか全く覚えていませんが、LWP と Crypt-SSLeay で できるようです。 >>1848 d-jiro >>1849 68user >>1854 d-jiro >>1855 68user |
Socketを用いたPerlでHTTPSクライアントのサンプルは ありませんか? |
>>2720 よー http://www.thomas-fahle.de/pub/perl/LWP/HTTP/HTTP_Get.html#https |
68userさん,こんにちは. 失礼ながらご連絡事項をこちらでお伝えします. このサーバーがポートスキャンの踏み台にされたそうです. カーネルも古いし本格的な対策は無理だと思いますが そちらでできる対策があれば試していただけませんか. > 早速ですが、サンライズシステムズ 様の配下にある > 210.249.139.22 というホストから > ポートスキャンが行われた模様との連絡が入りました。 連絡経路はTTCNパワードコムの鎌田さん->両毛の新堀さん->私の順です. |
実は5/30に胆嚢摘出の手術を受けまして,入院中なのです. 動くに動けない感じで,今も看護婦の目を盗んで携帯でつないでいます. 何かありましたらお気軽にメールください. |
>>2722 Netboy 現在対応中です。ひととおり終わりましたら作業項目を書き 込みます (メールの方がよろしければメールします)。 > 実は5/30に胆嚢摘出の手術を受けまして,入院中なのです. 大変ですね。御大事に…。 |
>>2722 Netboy メール送りました。 |
ただ今再起動しました |
利用者の方へ。 サーバを置いてあるところの管理者の方が、2002/06/02 にマシンの 電源を落とされたため、しばらくアクセスできない状態になっていました。 |
PerlでのFTP接続を行いファイル転送をしたいのですがうまくいかず 困ってます。 $proto = getprotobyname('tcp'); $port = getservbyname('ftp', 'tcp'); $iaddr = inet_aton($hostname) or die "$hostnameのアドレス取得失敗"; $paddr = pack_sockaddr_in($port,$iaddr); socket(SOCKET,PF_INET,SOCK_STREAM,$proto) or die "socket失敗"; connect(SOCKET, $paddr) or die "connect失敗"; # ファイルハンドル COMMAND をバッファリングしない select(SOCKET); $|=1; select(STDOUT); #---------- ユーザ認証 ---------------------- print SOCKET "USER $username\r\n"; print SOCKET "PASS $password\r\n"; #------------------------------------------ と、ユーザー認証まではいけるでのすがその後で エラーとなってしまいます。 ちなみにユーザーとパスともにあっているはずなんですが・・・。 情報不足かと思いますが何か思い当たることがありましたら 指導のほどお願いいたします。 |
↓のNo.2728の件です。 接続まで何とかできたのですがファイルをアップロードしたいのですが どのようにすればいいのかわからなくて・・・。 教えていただけませんか?? |
>>2729 yun 2729 は 2728 の補足ですか? それとも 2728 の件は解決したのですか? エラーが出るのですか? やり方がわからなくて先に進めないのですか? |
接続後のPUTの仕方がわからないので先にすすめないんです。 ん〜情報が少なくて申し訳ないです。 何かわかることがありましたらお願いします。 |
いつも唐突な知るもんですいません。 「日本語情報処理」という本を読んでいたら、 EUC を内部コードとして使うコンピューター(?)か ソフトウェア(?)として 「焼き獣ホスト(YKH)」というのが出てきたんですが、 焼き獣ホストで Google しても見つかりません。 これ、何かご存知の方はいらっしゃいますか? |
>>2731 yun > 接続後のPUTの仕方がわからないので先にすすめないんです。 http://X68000.startshop.co.jp/~68user/net/ftp-1.html を読んでください。 >>2732 ふくし >「焼き獣ホスト(YKH)」 これですかね。端末エミュレータみたいですね。 http://www.geocities.com/Tokyo/Flats/7725/view_info.htm YKH is a small application of this kind, that emulates Japanese VT-320 terminal under MS-DOS and is freely distributed under the terms of the GNU general public licence |
はじめまして。リュウと申します。 初心者で申し訳ないのですが、質問があります。 HP9000にHP-UX11.0のコールドインストールをしているのですが、 毎回リブート後にメニューが出るようになってしまいました。 メニューを出さずに通常に内蔵ディスクから起動されるようにするには、 どのようにしたらいいでしょうか? あと、 Interact with IPL?> で、'Y'を押して IPL> から抜け出せなくなってしまいました。 exit,quitともダメです。。。 あわせてよろしくお願いします。 乱文で申し訳ございません。 |
ほんとに初心者です、おしえてください 課題でechoサーバ及び、クライアントのプログラムをC言語とPerlで作成する。というのがでたのですが、echoサーバはこのHPでプログラムが掲載してあるのでなんとか自分でやってみようと思うのですが、この場合のクライアントとはどのようなプログラムになるのでしょうか? よろしければおしえてください。 宜しくおねがいします。 |
もう一つ質問なのですが。 課題2 ・chargenサーバ及び、クライアントのプログラムをC言語とPerlで作成する。 フリーなUnix系OSで動作する事。 chargenサーバはデーモンとして動作する事。 chargenサーバは、標準telnetコマンドとも通信可能な事。 chargenサーバは、ログ機能を有する事。 chargenクライアントは通信先がchargenサーバと判明した時点で通信を終了させる 事。 という課題もでています。初心者の僕にはまったく課題の意味がわかりません。どなたかおしえてくれないでしょうか?たびたびすいません。宜しくお願いします。 |
>>2734 リュウ せっかく「Interact with IPL」というキーワードがわかっているのですから、 それで検索しましょう。ついでにキーワードに「HP-UX」も付けておきましょう。 そしたら一発でひっかかります。 http://www.google.com/search?hl=ja&q=Interact+with+IPL+HP-UX&lr=lang_ja >>2735 だいすけ > この場合のクライアントとはどのようなプログラムになるのでしょうか? http://X68000.startshop.co.jp/~68user/net/sample/http-client.pl をちょっといじれば、echo クライアントになります。 >>2736 だいすけ chargen については RFC864 をどうぞ。 http://www.goto.info.kanagawa-u.ac.jp/~horiyuki/rfc/rfc864j.txt その他の疑問点については、まず基本となる雛型を作ってみてから、ですね。 |
たびたびすいません。このような課題のクライアントのことなのですが? どのようなプログラムになるのでしょうか? echoサーバ及び、クライアントのプログラムをC言語とPerlで作成する。 フリーなUnix系OSで動作する事。 echoサーバはデーモンとして動作する事。 echoサーバは、標準telnetコマンドとも通信可能な事。 echoサーバは、ログ機能を有する事。 以上は必須機能です。 余裕があれば、 サーバには大文字、小文字変換機能をオプションで持たせる。 クライアントは文字列をファイルから読み取り、送信するオプションを付ける。 等、面白い機能を付加して下さい。 |
ほんとうに初心者なのでchargenについてはプログラムを書き始めることもできません。どうかたすけてください。 |
仕組みやプログラムを理解する手助けならできますが、答えをそのままあげる ことはできません (おもしろくないから)。 宿題スレなら、誰かがソースを書いてくれるかもしれません。 http://pc.2ch.net/test/read.cgi/tech/1020785918/l50 てゆーか、高専生か大学生かと思っていたんですが、社会人なのですか? 自分なりにある程度調べた上で、 「ここまでは理解できたけど、この部分がわからないから教えてくれ」 という質問の仕方を身につけた方がよいと思いますが、まぁいらぬお節介でしょうね。 |
はじめまして。 UNIXのftpコマンドについて、お聞きしたいことがあります。 ftpコマンドを使用して、WinNTサーバからUNIXへデータを getしているのですが、以下の事象が発生しています。 ・対象ファイルが0バイトの時、getコマンド終了後、そのまま ftpのプロセスがハングアップしてしまうことがある。 シェル内で以下のように使用しています。 ftp -n <<EOF open [IPアドレス] user [ユーザ名] [パスワード] binary get [getするファイル名] [保存するファイル名] close quit EOF 現象を見る限り、getコマンドまでは完了してるようです。 psコマンドにて、ftpのプロセスを検索すると、 ftp -n が残ってしまっています。 UNIX側からタイマーなどでftpのセッションを切ることは可能 なのでしょうか? |
>>2741 バクモン それって、要は ftp か ftpd のバグですよね。 ftp -n < input & pid=$! sleep 300 if [ `ps -p $!` ]; then kill $! fi 的な監視をするのが普通でしょうか。 |
>>2742 68user 早速のご回答、ありがとうございます。 確かにftpプロセスの監視しかないかな、と思います。 そこで、再度質問なんですが、このftpコマンドを使用している シェルがCシェルで書かれています(すいません、先に言って おくべきでした)。 Cシェルでは直前に実行したコマンドのプロセスIDを取得する 方法はあるのでしょうか? ($!はKシェル、Bシェルのみの文法と調べたら書いてありました) |
echoサーバの 3: #include <stdio.h> 4: #include <netdb.h> 5: #include <sys/types.h> 6: #include <sys/socket.h> 7: #include <sys/uio.h> 8: #include <unistd.h> 9: #include <sys/param.h> 10: #include <netinet/in.h> 11: #include <arpa/inet.h> この部分なのですが、#include <stdio.h>はわかるのですが、 他の物は参考書も見ても掲載されていません。 なんなのでしょうか? |
昨日から、UNIXを勉強しだしました。大変、初歩的な質問かもしれないのでごめんなさい。 アクセス状態が-rw-------のファイルをmoreで表示させたいのですが、私はファイルの所有者ではないので表示させることができません。chmodは使わないでアクセスを出来るようなのですが、どうすれば良いのですか? どなたか教えてください。よろしくお願いします。 |
>>2745 シゲ すみません。解決しました。 パスワードが解ればrootで入れるんですね。 |
>>2743 バクモン > Cシェルでは直前に実行したコマンドのプロセスIDを取得する > 方法はあるのでしょうか? $status です。 >>2744 だいすけ 例えば、関数 listen を使いたい場合は、man listen として、 include すべきファイルを調べます.同様に accept や bind など、 使用している関数全てについて調べていくと、それだけのファイルを include する必要がある、ということです。 |
ここのサイトのC言語のHTTPクライアントを使わせてもらって色々勉強させてもらってます。そこで質問なのですが、imodeのURL例えば(http://mobile.yahoo.co.jp/)のレスポンスが返ってくるプログラムを作ろうとしているのですが、どうも、302 FOUND がでてしまい、うまくいきません。どのように解決したらよいでしょうか? |
>>2748 木場 Locaiton: ヘッダに示されている URL を読み込めばよいです。 |
前回のことについての質問のつづきですが 僕のもっている参考書には掲載されてないのですが、 僕のもっている参考書が古いということでしょうか? |
>>2747 68user ご回答ありがとうございます。 ただ、$statusは直前のコマンドのリターン値がセットされる と認識しています。 Cシェルで直前のプロセスIDを取得するには、プロセスをバック グラウンドで動かすようにして、その際に標準出力されるプロセス IDをテキストファイルにおとして、grepなりをする方法しか ないかな、と考えています。 そこで、以下を考えました。 ftp -n <<EOF & open [IPアドレス] user [ユーザ名] [パスワード] binary get [getするファイル名] [保存するファイル名] close quit EOF これを実行すると [1] 10161 と言った形でプロセスIDが出力されます。 ただ、これをテキストファイルに落とす方法がわかりません。 多分、リダイレクトをするのだと思っているのですが、どこに それをうめこめばいいのでしょうか? |
それとも C言語で新しくできた関数なのでしょうか? |
>>2751 バクモン ああ、そういう意味ですか。 tcsh だと $! で取れますが、csh では無理かもしれないですね。 jobs -l だと取れそうですが、どうでしょうか。 ただ、僕なら監視用プロセスを別に起こします。 例えば、 mkdir /tmp/.ftp-lock ftp -n <<EOF open .. quit EOF rmdir /tmp/.ftp-lock として、監視プロセスは n 秒前より過去に /tmp/.ftp-lock が作成されて いたら、 kill `ps -ef | grep get-file.sh | grep -v grep' する、とか。 もちっと確実にするなら ln -s $$ /tmp/.ftp-pid ftp -n <<EOF open としてプロセス番号を特定できるようにする方法もあります ($$ は sh の プロセス番号なので、$$ の子プロセスを kill する必要がありますけど)。 >>2750 だいすけ 「何が」参考書に掲載されていないのですか? netdb.h? listen? accept? ここらへんの関数については規格化されていません。よって、UNIX では 使えても Windows では関数そのものがなかったりします。 例えば 「ANSI C マニュアル」 といった書名ならば、規格化された関数については網羅しているかもしれませんが、 規格外の関数については載っていなくても不思議ではありません。 |
5: #include <sys/types.h> 6: #include <sys/socket.h> 7: #include <sys/uio.h> 8: #include <unistd.h> 9: #include <sys/param.h> 10: #include <netinet/in.h> 11: #include <arpa/inet.h これらが参考書に掲載されてないという意味だったのですが manコマンドでしれべていくのですね。 どうもありがとうございます。 |
はじめまして。 まだ、UNIXをはじめたばかりの初心者です。 いま、windows環境のマシンからtera termを使ってUNIXマシンにpostgressqlをインストールしています。そこで、「カーネルのコンフィギュレショーションファイルをチェックする」と書かれているのですが、これってどうやるのですか? どなたか教えてください。 よろしくお願いします。 |
>>2755 ビギナー > 「カーネルのコンフィギュレショーションファイルを > チェックする」と書かれているのですが、これって > どうやるのですか? OS によって違います。 http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/kernel-resources.html をどうぞ。 |
>>2756 68user ありがとうございます。 |
ご回答ありがとうございました。 今もちょっとわからないとこがあるのですが、 もうちょっと考えてわからなかったら、 聞きにきます。 |
再び質問です。 先ほどの質問と症状は似ているのですが、imodeのURLで(http://mobile.yahoo.co.jp/yahoo/index.html)のリクエストを出すと HTTP1.0 302 FOUND DATE Location http://mobile.yahoo.co.jp/error/404.html Conection: close のレスポンスが返ってきて、locationの部分を入れても実際のimodeのURLがゲットできなくて困っています。どのようにC言語のHTTPクライアント(1) のソースをいじればちゃんとしたレスポンスが得られるでしょうか? よろしくお願い致します。 |
初めまして黒木と申します。UNIX初心者です。 /usr/dict/words という辞書ファイルからEが2個以上出て、AとDとTがそれ ぞれ1個以上出て、最初がLで始まる単語が書かれてる行を見つけるには、 どういう1行コマンドを書けばよいでしょうか?よろしくお願いします。 (但し、文字は全て大文字・小文字を区別しない) *ファイルは何でも良いので、見つける方法が知りたいのです。 |
>>2759 きば > imodeのURLで(http://mobile.yahoo.co.jp/yahoo/index.html)の > リクエストを出すと ブラウザで http://mobile.yahoo.co.jp/yahoo/index.html を 見ると、404 not found になるので、 > Location http://mobile.yahoo.co.jp/error/404.html 当然そうなると思いますよ。 どこからこの URL が出てきたのでしょうか? >>2760 黒木 grep -i 'E.*E' /usr/dict/words | grep -i A | grep -i D | grep -i T | grep -i '^L' でどうでしょう。 |
すばやいレスありがとうございます。 http://mobile.yahoo.co.jp/yahoo/index.html ↑はimodeの使える携帯端末で見ることの出来るヤフーのカテゴリ検索のサイトです。 上記のURLのリクエストを送ったら携帯端末で見ることの出来るサイトをレスポンスしてくれるようにしたいのです。 imode専用のHTTPクライアントを68userさんのC言語のHTTPクライアント(1)を参考に作ろうと思っていて、とりあえず上記のURLで実験して作ろうと試みているのですが、なかなかうまくいかないので、68userさんの力をかして頂きたいと思う次第です。 |
>>2762 きば i-mode 端末のみで利用可能なページということですね? なら、 http://www.nttdocomo.co.jp/p_s/imode/tag/s2.html を参考にして、 GET /yahoo/index.html HTTP/1.0 User-Agent: DoCoMo/1.0/N209i などなど。 |
はい。imodeのみ利用可能なページです。 なるほど、、 urlをみてもうちょっとがんばってみます。 貴重なご意見ありがとうございます。 |
>>2761 68user 有難う御座いました。これで良いですね。 |
>>2753 68user ご回答ありがとうございます。 以下のようにロジックを変更しようかと思います。 ・ftpをバックグランドで動かす ・jobs -lの結果をテキストファイルに落とす ・5分sleepする(※1) ・grepとawkを使用して、テキストファイルからftpのプロセスIDを取得する ・ps -p にて取得したプロセスIDのプロセス生存を確認 ・ps -p のリターンコードが0以外であればkillするif文をおこなう(※2) こんな感じかな、と考えています。 怖い部分は※1,2です。 ※1:とりあえずユーザさんには現在の環境でgetが3分を越えることは ないといわれているので、安全を見て5分sleepさせるようにしたが 本当に大丈夫か? >>ユーザさんがOKと言っているので、問題なし・・・かな。 ※2:ps -p [プロセスID]でHITしなかった場合、リターンコードは必ず 0以外となる。逆にHITした場合は、必ず0となる。 >>このハンドリングは正しいのか、ちょっと自信なし。 色々とご回答ありがとうございました。 |
はじめまして。 私は、最近linuxを使い出した初心者です。 最近、仕事でpostgresqlをインストールしました。 インストールには成功したようなのですが、 $ pg_ctl startで起動をするとpostgresql(postmaster?)は起動します。 しかし $ postmasterでは、 DEBUG ... DEBUG ... DEBUG ... DEBUG ... と出力され、その後エラーメッセージも何も出なくて、反応が無くなってしまいます。(いつも、ctrl+cで抜けています) どうしてでしょうか? どなたかご存知の方、ご教授ください。 |
書き忘れていました。 バージョン:postgresql-7.11 環境:open blocksというlinuxマシンです。 (redhatでも同様でした) |
>>2767 ユウ > $ postmasterでは、 引数なしで実行したのですか? データベースクラスタの場所はどうやって 指定しているのですか? 環境変数 PGDATA? > DEBUG ... この ... というのは省略したのですか? 本当に ... と表示されたのですか? > その後エラーメッセージも何も出なくて、反応が無くなってしまいます。 それはフォアグラウンドで起動しているだけで、正常起動じゃないんでしょうか? http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/postmaster-start.html > サーバを起動する一番簡単な方法例は、 > postmaster -D /usr/local/pgsql/data > となり、サーバをフォアグラウンドで走らせます。 > バックグランドでpostmasterを起動する には通常のシェルの構文を使います。 また、 % sh -x pg_ctl start として、pg_ctl 内で実行される postmaster の引数を確認するのも よいでしょう。 >>2766 バクモン > ※2:ps -p [プロセスID]でHITしなかった場合、リターンコードは必ず > 0以外となる。逆にHITした場合は、必ず0となる。 > >>このハンドリングは正しいのか、ちょっと自信なし。 問題ないと思いますが、それでも心配なら % ps -p [pid] | grep スクリプト名 などなど。 |
はじめまして。 ネットワークプログラミングの知識を参考にさせてもらっています。 で、ひとつ作りたいプログラムがあって質問させてください。 現在PERLを利用して、TERATERMのマクロのようにプログラムの出力結果を分析して、 次のバッチの投入のような監視?ツールを作りたいと思っています。 で、ソケットをつかってポート23にアクセスしに行くのですが、 固まってしまいます。ポート80や110にはここのサイトの見本をまねて アクセスすることは出来るのですが・・・。 shでやるというのも考えられるのですが、suではパスワードを聞いてきますし、 別のアプリ実行しても制御が完全にアプリ側に移るんで無理ですよね? ポート23にアクセスして結果をやり取りするにはどうしたらよいのでしょうか? どなたかお分かりでしたらヒントをお願いします。 |
>>2769 68user お返事ありがとうございます。 質問の書き方が下手で、申し訳がありません。 PGDATA=/usr/local/pgsql/dataを設定していて $ postmaster は引数なしで実行しています。(pg_ctl startもそうです) DEBUG...はDEBUGのあとの出力を省略させていただきました。 UNIXに関しても、パソコンに関しても本当に初心者で、何がどうなってるのかわからない状態なのですが、長くなりますが詳しく書かせていただきます。 $pg_ctl startを実行すると postmaster successfully started と出力されたあとに DEBUG...(省略しています)と5行でて、そこでreturnキーを押下すると [postgres@AAAServer postgres]$ と次のコマンド入力が可能になります。 しかし $ postmasterを実行しても postmaster successfully started というメッセージは出ないで、 DEBUG...(省略しています)と5行でてreturnキーを押下しても [postgres@AAAServer postgres]$ とはならず、改行されるだけです。 (以上は、openblocks,redhat両方共の環境です) いろいろ試してみると、 redhat環境では、/usr/local/pgsql/data/postgresql.confに silent_mode = on tcpip_socket = on syslog = 2 と追記して $ postmasterを実行すると DEBUG...(省略します)とは出力されないで、 [postgres@AAAServer postgres]$ となり、postgresqlは起動しました。 そこで、openblocksでpostgres.confを上記のように変更して $ postmasterを実行しました。すると FATAL 1: 'silent' is not valid option name とエラーが帰ってきました。 $pg_ctl startで実行した結果も、 postmaster successfully started と出力された後に、同様のエラーが帰ってきました。 (postgres.confの変更内容のsilentをコメント化したらsilentの下に追記した、tcpip_socketで同様のエラーが起きます。) 申し訳がありませんが、ご教授ください。 |
お返事ありがとうございます。 質問の書き方が下手で、申し訳がありません。 PGDATA=/usr/local/pgsql/dataを設定していて $ postmaster は引数なしで実行しています。(pg_ctl startもそうです) DEBUG...はDEBUGのあとの出力を省略させていただきました。 UNIXに関しても、パソコンに関しても本当に初心者で、何がどうなってるのかわからない状態なのですが、長くなりますが詳しく書かせていただきます。 $pg_ctl startを実行すると postmaster successfully started と出力されたあとに DEBUG...(省略しています)と5行でて、そこでreturnキーを押下すると [postgres@AAAServer postgres]$ と次のコマンド入力が可能になります。 しかし $ postmasterを実行しても postmaster successfully started というメッセージは出ないで、 DEBUG...(省略しています)と5行でてreturnキーを押下しても [postgres@AAAServer postgres]$ とはならず、改行されるだけです。 (以上は、openblocks,redhat両方共の環境です) いろいろ試してみると、 redhat環境では、/usr/local/pgsql/data/postgresql.confに silent_mode = on tcpip_socket = on syslog = 2 と追記して $ postmasterを実行すると DEBUG...(省略します)とは出力されないで、 [postgres@AAAServer postgres]$ となり、postgresqlは起動しました。 そこで、openblocksでpostgres.confを上記のように変更して $ postmasterを実行しました。すると FATAL 1: 'silent' is not valid option name とエラーが帰ってきました。 $pg_ctl startで実行した結果も、 postmaster successfully started と出力された後に、同様のエラーが帰ってきました。 (postgres.confの変更内容のsilentをコメント化したらsilentの下に追記した、tcpip_socketで同様のエラーが起きます。) 申し訳がありませんが、ご教授ください。 |
>>2770 せと > で、ソケットをつかってポート23にアクセスしに行くのですが、 > 固まってしまいます。 要は telnet クライアントを作りたいと。 接続後、telnet プロトコルに従ってネゴシエーションをする 必要があります。詳細は http://www.faqs.org/rfcs/rfc318.html perl のモジュールを使うなら Net::Telnet がよいでしょう。 ただし、telnet クライアントができても、文字の送信/文字の 受信が可能になるだけです。エラー発生の判断などはやはり プログラム側で行わなくてはいけません。 というわけで、素直に > プログラムの出力結果を分析して、次のバッチの投入のような監視?ツール を行うスクリプトを作った方がよいでしょう。 > suではパスワードを聞いてきますし、 > 別のアプリ実行しても制御が完全にアプリ側に移るんで無理ですよね? 危惧しておられることがよくわからないのですが、普通はスクリプトなどを 書けば実現可能です。 >>2772 ユウ > $ postmasterを実行しても > postmaster successfully started > というメッセージは出ないで、 > DEBUG...(省略しています)と5行でてreturnキーを押下しても > [postgres@AAAServer postgres]$ > とはならず、改行されるだけです。 それはそれで正常です。キーの入力をそのアプリが奪うような状況を 「フォアグラウンドで動作している」と言います。逆に、アプリが 裏で動いているような状況を「バックグラウンドで動作している」 と言います。 http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/postmaster-start.html にある通り、postmaster を実行すると、単にフォアグラウンドで 動くという仕様になっているだけです。postmaster を実行した後、 別ウィンドウで psql を実行すると、ちゃんと接続できるはずです。 > $ postmasterを実行しても > postmaster successfully started > というメッセージは出ないで、 postmaster successfully started という文字列を表示をしているのは pg_ctl だからです。 postmaster をバックグラウンドで動かすには、 - postmaster & として起動する。 - postgresql.conf を修正して silent_mode=true とする。 - postmaster -S とする。 - postmaster -c silent_mode=true とする。 などの方法があります (true と on は同じ)。全てマニュアル http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/runtime-config.html に書いてあります。 > FATAL 1: 'silent' is not valid option name 'silent_mode' is ... ならわかりますが、`silent' is ... となるということは、 postgresql.conf に silent=true などと書いていませんか? > tcpip_socketで同様のエラーが起きます。 ということは、その上にある行がおかしい可能性もあります。 とにかく、まずは postgresql.conf への追加時に修正ミスをしていないかを 疑うべきでしょう。 あとは、OpenBlockS にインストールされている PostgreSQL のバージョンと RedHat にインストールされている PostgreSQL のバージョンが違うとか。 |
>>2773 68user ご指摘の通りでした。 silent_mode,tcpip_socketにのエラーは直りましたが、syslogでエラーが出る状態です。なぜか解らないですけど、redhatで成功しているpostgresql.confをコピーしてきます。 ありがとうございました。 |
初めて投稿します。Solarisでハードウェアの診断をする機能があると聞きました。旧SUN OSでは、ダイアグというそうですが、オンボードやHDDの状態を診断して、異常個所をリストアップしてくれるような機能があれば、教えてちょんまげ!何卒よろしくお願いします。 |
echoサーバ(C言語)でのことですが #include <sys/uio.h> #include <unistd.h> #include <sys/param.h> #include <netinet/in.h> #include <arpa/inet.h> これらがなくても正常にコンパイルできるのですが、必要なのでしょうか? |
ご指摘の通りでした。 silent_mode,tcpip_socketにのエラーは直りましたが、syslogでエラーが出る状態です。なぜか解らないですけど、redhatで成功しているpostgresql.confをコピーしてきます。 ありがとうございました。 |
#2776 >これらがなくても正常にコンパイルできるのですが、必要なのでしょうか? windowsでならば必要ないと思います。 |
こんばんは。 最近はお一人で回答をしておられるようでおつかれさまです >68user とかいいつつ私も質問しに来てるんですが…。 で早速ですがどなたか知恵をお貸しください。 現在P4マシン上でRedhat7.1.94を利用しており、100BASEカードを使って LAN経由でインターネットにアクセスしています。 IPはDHCPサーバから割り振られているのですが、Netscapeなど、 どうやらgethostbynameを呼んでいると思われるプログラムが 名前解決できずに困っています。 ただしnslookupやhostコマンドでは正しく名前解決できる上、 Netscape等からも数字のIPを直に打てばアクセスできています。 試しに/etc/hostsに[216.239.33.101 www.google.co.jp]を記述すると、 Netscapeからもアクセスできました。 dhcpのクライアントにはdhcpcd-1.3.18を[/sbin/dhcpcd -n eth0]で 起動していて、自ホストのIPは正しく取得できているようです。 /etc/host.confには[order hosts,bind]のみを記述しており、 resolve.confにはWin2k動作時に調べておいたLAN内DNSサーバの指定 [nameserver 192.168.0.1]を記述しています。 自分なりに無い知識をいくらかでも埋めようとgoogleで探し回ったのですが 全てに目を通すほどパワーが続きませんでした。 どうぞよろしくお願いします。 |
はじめまして。 あまりにも簡単な質問のようで申し訳ないのですが、 「ソケット」っていうのは、「IPアドレスとポート番号を組み合わせたもの」でしょうか? どこで読んだのか、「ポート番号とプロセスIDを組み合わせたもの」という考えが頭を離れず、 自分でもいろいろ調べたのですが、解答は見つかりませんでした。 もしかしたら見当違いな質問なのかもしれませが、 ソケットの知識をお持ちの方がおりましたら、ご教授願います。 どうぞよろしくお願い致します。 |
>>2779 has ども。最近会社でもやる気ゼロなので、回答なぞしてるんですわ。 もしかして Netscape を起動した後に dhcp クライアントを起動 してません? もしそうなら順番を逆にしてみるとか。 そうでないなら、tcpdump の結果を見せてくださいな。 あと、あらゆる gethostbyname が失敗してますか? % perl -e "use Socket;print inet_ntoa(inet_aton('www.jp.freebsd.org'))" もダメですか? >>2780 aozora > 「ソケット」っていうのは、「IPアドレスとポート番号を組み合わせたもの」 > でしょうか? 「IP アドレスとポート番号を組み合わせたもの」は相手を一意に特定するための 識別子で、たとえるなら電話番号です。 # ただし、それは IP の話。UNIX ドメインソケットでは、ファイルが識別子です。 「ソケット」は、通信路の端点で、たとえるなら電話機です。 これを同じものと考えてしまうと、例えば bind(2) が理解できなく なります。bind(2) はたとえるなら電話機に電話線をつなぐという 感じでしょうか。 > 「ポート番号とプロセスIDを組み合わせたもの」 違います。1プロセスから複数のソケットを使うことができますから。 |
初めて書き込みをします。 UNIXは、まだ初心者です。 お聞きしたい事を書き込みます。 現在、「share」コマンドでディレクトリを共有した後、「dfmount」コマンドで共有されたディレクトリにアクセス中のクライアント名を取り出そうとしています。 「dfmount」コマンドで情報が取れないのですが、どうしてなのでしょうか? 「share」の情報を書き込みます。 > /usr/sbin/share - /share rw=client "File Service" - /home rw=nini:gp7000s,root=gp7000s "File Service" - /shared rw=osl:gp7000s,root=gp7000s "File Service" > |
はじめて書き込みます。 UNIXの初心者シドです。 少し教えてほしいことが有ります。 知っていられる方は、お教え願えないでしょうか? 「share」コマンドを実行して、「dfmounts」コマンドを実行すると何も表示されません。なぜでしょうか? 「share」の情報と「dfmounts」コマンドを実行したときの表示部分を書きます。 > /usr/sbin/share - /share rw=client "File Service" - /home rw=nini:gp7000s,root=gp7000s "File Service" - /shared rw=osl:gp7000s,root=gp7000s "File Service" > /usr/sbin/dfmounts > |
UNIX初心者(パソコンも初心者です)の私にどうか教えてください。 telnetを使って、redhat環境のマシンに接続して操作をしています。 $shutdown -r now で再起動をしました。 すると、立ち上がるまでに10分以上(普通は3分ぐらいだと思う)かかり、立ち上がって普通は [ユーザ名(マシン名)カレントディレクトリ]$ と出るところで、マシン名がnone(本来はmizuho)になっていました。そして、書き込み可能(-wrxwrxwrx)のファイルを操作しようとすると、読取専用とエラーメッセージが出て操作できなくなってしまいました。(全ファイルそうです) いろいろやってみた結果、 $mount -o remount, rw /dev/hda5 / で、書き込み可能にはなりましたが、再起動をすると読み込み専用に戻ってしまいます。 (boot.log,messageを見てみましたが、snmpd shutdown failedと出ています。これって関係ありますか?) どなたか直し方を教えてください。 お願いします。 それと今、boot画面のメッセージをチェックしようとしているのですが、1行ずつ進める方法があるらしいです。これってどうやるのですか? |
はじめまして。 現在どうしても解決できない問題があり、書き込みました。 どなたかご存知の方いらっしゃいましたら、レスよろしくお願いします。 WEBサーバにおいてLocationヘッダで指定したURLへリダイレクトさせて、 かつリダイレクト先へのHTTPリクエストにCookieを設定したいのですが、 設定できない状態になっています。 --------------------------------------------------------- HTTP/1.1 302 Found\n Set-Cookie: test=a; domain=www.hogehoge.co.jp; path=/\n Location: http://www.hogehoge.co.jp\n\n --------------------------------------------------------- のようなレスポンスを返却するCGIを作成したのですが、上記レス ポンスを返すサーバとリダイレクト先のサーバが異なる場合、次の リクエストにCookieが付加されてきません。 Cookieを設定できるのは、自分と同じドメインのみなのでしょうか。 当たり前の事だったら申し訳ありません。 よろしくお願いします。 |
>>2785 うみ > Set-Cookie: test=a; domain=www.hogehoge.co.jp; path=/\n cookie で domain をセットしたことがないのでよく知りませんが、 無理なんじゃないでしょうか。これができるなら、任意のサーバの cookie を外部からセットできることになります。 http://www2.studyinghttp.net/cookies.html を見ると、 server-1.hogehoge.co.jp で Set-Cookie: test=a domain=hogehoge.co.jp という cookie を吐くと server-1.hogehoge.co.jp や server-2.hogehoge.co.jp に送り返されるようになる。 ということではないかと思います。 もし、「Location なしだとうまくいくが、Location ありだとダメ」 ということなら、上記の認識は間違っているんでしょうけど。 >>2784 シゲ > 立ち上がるまでに10分以上(普通は3分ぐらいだと思う)かかり、 このときコンソールには何が出力されていますか? 症状からすると 何かしらのエラーが発生して、Read-only で mount され、シングル ユーザモードで起動しているように見えますが、根本原因がコンソール に表示されていると思います。 >>2783 シド >>2775 レイラ 僕には全くわからない分野なので、お役に立てないようです。 |
>>2786 68user >> 立ち上がるまでに10分以上(普通は3分ぐらいだと思う)かかり、 > 何かしらのエラーが発生して、Read-only で mount され、シングル > ユーザモードで起動しているように見えますが あ、10分待てば起動するのなら違うのかなぁ。 > snmpd shutdown failedと出ています。これって関係ありますか? shutdown 時のエラーなので関係ないと思います (実は関係あったり するのかもしれませんけど)。 > 1行ずつ進める方法があるらしいです。 少なくとも FreeBSD では、Scroll Lock を押せばスクロールが止まり、 カーソルキーで移動できます。Linux ではどうなのかはわかりません。 |
>>2781 68user ソケットについてのご教授、ありがとうございました。 かなり間違って理解していたようですが、 お陰様でソケットの考え方について理解できるようになりました。 |
>>2786 68user お返事ありがとうございます。 早速、scroll lockで画面と止めながら(出来ました!)エラーを見てみました。 Updating /etc/fstab failed to open /proc/partitions:No such file or directory Flushing all current rules and user defined chains:ipachains:incompatible with this kernel Clearing all current rules and user and user defined chains:ipchains:Incompatible with this kernel Starting system logger Errot:MM:mm:core:failed to open semaphore file(read-only file system):OS:No such file or directory mount:special device LABEL=/boot does not exisist Starting crond:crond:can't open or create /var/run/crond/pid:Read-only file system と7箇所でエラーが出てました。 これを見て私がわかったのは、 /proc/partitionsがない /bootの何かがない と言うことです。 見てみると、/proc,/boot両ディレクトリの中がまったく存在しませんでした。 何じゃコリャ! UNIX初心者(パソコンも)にはまったく解りません。 どうか、ご教授ください。 |
こんばんは。 お仕事大変ですな。まあそう腐らずに頑張ってください >68user さてガキの使いですんません。宿題やってきました。 まずdhcpcdですが、psで確認しても起動時から動いているようなので、 Netscapeの方が先ということはなさそうです。 次にperlスクリプトですが、残念ながら、 Bad arg length for Socket::inet_ntoa, length is 0, should be 4 at -e line 1. と表示されます。要は正引きが失敗しているようです。 逆引きは引数の渡し方がわかりませんでした。 # なんせlinuxからはweb検索にも支障をきたしているもので(^^;) 最後にtcpdumpの出力です。tcpdumpを動かしてから、 % host www.jp.freebsd.org のコマンドと、netscapeにてhttp://www.jp.freebsd.org、 http://210.157.158.42/へのアクセスなどをしてみました。 # が、記録に残っているかは私にはわかりませんでした # /usr/sbin/tcpdump tcpdump: listening on eth0 01:47:38.943528 192.168.0.39.3044 > 143.90.129.198.http: . ack 1226176673 win 8576 (DF) 01:47:38.943528 192.168.0.40.32797 > 192.168.0.1.domain: 29608+ PTR? 198.129.90.143.in-addr.arpa. (45) (DF) 01:47:38.963528 192.168.0.39.3276 > 143.90.129.198.http: S 22004303:22004303(0) win 8192 <mss 1460,nop,nop,sackOK> (DF) 01:47:38.983528 43.242.210.37.6699 > 192.168.0.33.1190: . 3236267430:3236268764(1334) ack 2911899325 win 17252 (DF) 01:47:38.983528 192.168.0.33.1190 > 43.242.210.37.6699: . ack 4294960438 win 17520 <nop,nop,sack sack 1 {4294961772:1334} > (DF) 01:47:38.993528 211.129.12.43.domain > 192.168.0.40.32797: 29608 1/2/2 (141) 01:47:38.993528 192.168.0.40 > 211.129.12.43: icmp: 192.168.0.40 udp port 32797 unreachable [tos 0xc0] 01:47:38.993528 211.129.14.134.domain > 192.168.0.40.32797: 29608 1/2/2 (141) 01:47:38.993528 192.168.0.40 > 211.129.14.134: icmp: 192.168.0.40 udp port 32797 unreachable [tos 0xc0] 01:47:39.003528 143.90.129.198.http > 192.168.0.39.3044: . 5897:6433(536) ack 0 win 32767 01:47:39.013528 192.168.0.39.3044 > 143.90.129.198.http: . ack 1 win 8576 (DF) 01:47:39.013528 143.90.129.198.http > 192.168.0.39.3044: . 6433:6969(536) ack 0 win 32767 01:47:39.013528 192.168.0.39.3044 > 143.90.129.198.http: . ack 1 win 8576 (DF) 01:47:39.023528 43.242.210.37.6699 > 192.168.0.33.1191: . 3298096123:3298097457(1334) ack 2981221337 win 17235 (DF) 01:47:39.023528 143.90.129.198.http > 192.168.0.39.3276: S 1909102369:1909102369(0) ack 22004304 win 536 <mss 536> 01:47:39.023528 192.168.0.39.3276 > 143.90.129.198.http: . ack 1 win 8576 (DF) 01:47:39.023528 192.168.0.39.3276 > 143.90.129.198.http: P 1:43(42) ack 1 win 8576 (DF) |
困っています。誰か助けてください。 UNIXのファイルシステムと他のファイルシステムの切り分けをどのコマンドを使用すればいいのかわかりません。(他のファイルシステムは、SafeFile/Globalファイルシステムです。)はじめは、fstypコマンドを使用すれば、良いと思ったんですが、UFS(UNIXファイルシステム)しか、出てきません。それにデバイス中です。と言うエラーが発生して、困っています。解決策を知っている方は、お教え願えないでしょうか? |
echoサーバ(Perl)の5行目の 5: use Socket; この文はどういう意味なのでしょうか? おしえてください。 |
echoサーバのほうはプログラムに解説してくださっているので、読んでみてなんとか理解できそうなのですが、クライアントのほうを書けそうにありません。クライアントのほうもおしえていただけないでしょうか? |
>>2786 68user お騒がせしました。出来ちゃいました。 boot画面を見ていると can't execute rc.sysinit となっていたので、rc.sysinitを見てみるとアクセス権が -rw-r-xr-x となっていました。これでは実行権がないので -rwx-r-xr-x とするとできました。 出来てしまえば簡単なことでした。 ありがとうございました。 |
初めまして。大学の授業で初UNIXに相当困り果ててるものです・・・。どうか教えてください。 /usr/dict/words とうゆうファイルは単語の先頭の文字をアルファベット順に並べたものですよね??これを単語のおしまいで分類したものだすようにしたいのです。1行コマンドで・・・。ちなみに大文字と小文字は区別しないで!!! よろしくお願いします(><) |
>>2790 has > 最後にtcpdumpの出力です。 Query 投げてないですねぇ。普通は 23:36:51.920878 192.168.0.5.2275 > 192.168.0.1.domain: 4+ A? www.jp.FreeBSD.org. (36) 23:36:52.003329 192.168.0.1.domain > 192.168.0.5.2275: 4 1/4/5 A updraft.jp.FreeBSD.ORG (251) こんな感じのが流れるはずです。念のため、 % strace dig www.jp.FreeBSD.org で流れを追ってみてください。うちの FreeBSD では (*BSD は truss) % truss dig www.jp.FreeBSD.org|egrep 'socket|connect' socket(0x2,0x2,0x0) = 3 (0x3) connect(0x3,{ sa_len = 48, sa_family = 120, sa_data = } },16) = 0 (0x0) となりますが、そちらではどういう結果になりますか? もし socket さえ行っていないようなら、/etc/host.conf とか /etc/resolv.conf の解析あたりでこけているような気がします。 なお、nslookup や host は /etc/hosts や /etc/host.conf を 参照せず、必ず DNS サーバに Query を投げるので、原因の 切り分けの際はご注意を。 > resolve.confにはWin2k動作時に調べておいたLAN内DNSサーバの指定 > [nameserver 192.168.0.1]を記述しています。 DHCP クライアントは /etc/resolv.conf を上書きすると思いますが、 上書き後の内容はどうなっていますか? あとは、DHCP をやめて、手で IP アドレスなどを設定してみると何かに 気づくかも…という役に立たないアドバイスしかないです。 >>2793 だいすけ > 5: use Socket; > この文はどういう意味なのでしょうか? Socket モジュールを使うという宣言です。利点は http://x68000.startshop.co.jp/~68user/net/perl4.html をどうぞ。 >>2793 だいすけ > クライアントのほうを書けそうにありません。 何がわからないのかわからないので、 http://x68000.startshop.co.jp/~68user/net/ を読んでくださいとしか言えません。 >>2795 飴 > これを単語のおしまいで分類したものだすようにしたいのです。 > 1行コマンドで・・・。ちなみに大文字と小文字は区別しないで!!! じゃあヒントだけ。rev というコマンドがあるならそれを 使います。rev がない UNIX なら、わかりません (perl を 使えばできるけど、問題の趣旨とは違うような気がする)。 |
あるログファイルに1行出力されるごとに、その行に特定のキーワードが あるかどうかを判断して、あった場合はその行を別のログに出力する といったことをUNIXコマンドでできないかと調べています。 イメージとしては、「tail -f」と「grep」の組み合わせみたいな 感じですが、二つのコマンドをパイプで結合してもダメでした。 何か良い手はないでしょうか? ご存知の方がいたら教えてください。 よろしくお願いします。 |
>>2797 HIDE tail -f log | grep foo でできる環境もあります。FreeBSD と Solaris2.6/8 あたりはできるはず。 というか、できない環境をしらないのでアドバイスはできませんが、tail が バッファリングしてるのかな? tail 自体それほど複雑な機能ではないので、さくっと perl などで 自作するのがいいかもしれません。 |
>>2798 68user ご回答いただきまして、ありがとうございます。 >tail -f log | grep foo でできる環境もあります。FreeBSD と>Solaris2.6/8あたりはできるはず。 こちらの環境はSolaris2.6です。 tail -f log | grep foo だと意図した形で画面に表示されるのですが、 tail -f log | grep foo >> log2 とやるとlog2には何も出力されないんです・・・・・・ 何か環境が変なのかな? >tail 自体それほど複雑な機能ではないので、さくっと perl などで >自作するのがいいかもしれません。 そうですね。実はこの処理は大容量の性能関連のログから必要な 行を抽出/判定するための使用しようとしているのですが、Perl で作ったらログの行が多いからか、逆にそのツールが動いている 時間はCPUが100%になってしまったのでUNIXコマンドでできないかと 調べている次第です。(Perlはあまり詳しくないので私の作り方が マズイだけかもしれませんが) |
>>2799 HIDE > tail -f log | grep foo >> log2 なるほど。grep が出力をバッファリングしてるからですね。ちょっと調べて みた限りでは、/dev/stderr にリダイレクトしてもダメだし、バッファリング ありにするオプションはないようなので、 % tail -f log | perl -ne '$|=1;print if m/foo/' >> log2 てな感じで。 でも、grep でなんとかなりそうな気もするなぁ…。 |
>>2800 68user > /dev/stderr にリダイレクトしてもダメだし あー、grep 自体は stdout に出力してるだけだから、シェルで いくら stderr に振ってもどうにもならないですね。 というわけで、続きはここで。 http://pc.2ch.net/test/read.cgi/unix/1022769156/l50 2ch で質問するのなら最初からそっちで聞けっつーの。 |
>>2800 68user % tail -f log | perl -ne '$|=1;print if m/foo/' >> log2 をやってみたら、うまくいきました! いろいろ調べていただいたようで、ありがとうございました。m(__)m >でも、grep でなんとかなりそうな気もするなぁ…。 微妙〜なとこでうまくいかないのが悔しいですね。(^^;) でも、この件は急いでいたので大変助かりました。 |
>>2801 68user >2ch で質問するのなら最初からそっちで聞けっつーの。 至急性が高かったので両方に投稿しておりました。 大変失礼しました。すいません。 |
ここまでまるごとパクリっていうのも... http://www.apk.ne.jp/~yasya/ura/unix/index.html |
>>2796 68user digをstrace|egrepした内容です。 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) socket(PF_INET6, SOCK_STREAM, 0) = -1 EAFNOSUPPORT (Address family not supported by protocol) 一応ソケットを作りに行ってますが、connectはしてないみたいです。 あと設定ファイルですが、起動のたびに上書きされており、 % cat /etc/resolv.conf nameserver 192.168.0.1 となっています。 固定IPを設定するのは気がひけるのでまだやってません(^^;) でも毎回同じIPが割り当てられてる気もするし、MACアドレスとかで 決めてるようならいつものIPを指定してみようかな? ついでに >>2781のperlスクリプトをstrace|egrepしてみました。 socket(PF_UNIX, SOCK_STREAM, 0) = 3 connect(3, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 お手数かけてますがどうぞよろしく。 |
>>2805 has > digをstrace|egrepした内容です。 > socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 > socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) > socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) > socket(PF_INET6, SOCK_STREAM, 0) = -1 EAFNOSUPPORT (Address family not supported by protocol) > perlスクリプトをstrace|egrepしてみました。 > socket(PF_UNIX, SOCK_STREAM, 0) = 3 > connect(3, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or > directory) > socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 > connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 > socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 > connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 なんか全然違いますねぇ。UDP/IP で、192.168.0.1:53 宛に connect するはずなので、perl の場合の socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 という結果は正しいと思います。perl の実行時に tcpdump してみたら どうなるんでしょうか。 うちではこんな感じです。 % truss perl -e "use Socket;print inet_ntoa(inet_aton('www.jp.freebsd.org'))" socket(0x2,0x2,0x0) = 4 (0x4) connect(0x4,{ AF_INET 192.168.0.1:53 },16) = 0 (0x0) sendto(0x4,0xbfbfe464,0x24,0x0,0x0,0x0) = 36 (0x24) recvfrom(0x4,0xbfbfed64,0x400,0x0,0xbfbfe238,0xbfbfe1fc) = 251 (0xfb) close(4) = 0 (0x0) close(3) = 0 (0x0) % truss dig www.jp.freebsd.org socket(0x2,0x2,0x0) = 3 (0x3) connect(0x3,{ sa_len = 48, sa_family = 120, sa_data = } },16) = 0 (0x0) sendto(0x3,0xbfbff184,0x24,0x0,0x0,0x0) = 36 (0x24) select(0x4,0xbfbed694,0x0,0x0,0xbfbed60c) = 1 (0x1) recvfrom(0x3,0xbfbef184,0x10000,0x0,0xbfbed684,0xbfbed678) = 251 (0xfb) close(3) = 0 (0x0) ただ、どうも strace から絞り込んでいく方向は遠回りかもしれません。 IPv6 を OFF にしてみるとか、DHCP を使わずにやってみる方が早道かも しれませんね。 > でも毎回同じIPが割り当てられてる気もするし、MACアドレスとかで > 決めてるようならいつものIPを指定してみようかな? 大抵の DHCP サーバは、どの MAC アドレスにどの IP アドレスを振った かを数日間記憶していて (設定次第ですが)、できるだけ同じマシンには IP アドレスを振るようにしているので、ちょろっと試す分には OKかと 思います。 >>2804 通りがかり > ここまでまるごとパクリっていうのも... > http://www.apk.ne.jp/~yasya/ura/unix/index.html クレーム入れるのもダルいので、放置です。 ちなみに他にもありますよ :-) http://www.it.ice.uec.ac.jp/~furu/unix/kind.html http://noto.cc4-4.kanagawa-u.ac.jp/~jsato/helps/ コンテンツの引用や転載については http://x68000.startshop.co.jp/~68user/ を読んでください、ということで。 |
こんにちは。愛子@UNIX1年生 です。 今回、Cシェルを作成することになり、Cシェルはじめて2週間といった 初心者です。どうぞ、宜しくお願いします。 さて、質問なのですが・・・ [ test.txt ] apple 133 123 orange 133 123 candy 133 156 というファイルがあります。 このファイルの各行末に 変数 TEMPSTR に 格納されている文字列を連結するというCシェルを 作成しようとしています。 [ 作成したシェルスクリプト ] #!/bin/csh set TEMPSTR = "LIST" sed 's/$/,123.45/' < test.txt sed "s/^/${TEMPSTR},/" < test.txt sed "s/$/,${TEMPSTR}/" < test.txt [ 実行結果 ] apple 133 123,123.45 orange 133 123,123.45 candy 133 156 ,123.45 LIST,apple 133 123 LIST,orange 133 123 LIST,candy 133 156 文法があいまいです。 となります。 行頭挿入は、出来るのに行末追加は出来ないのは何故でしょうか??? 文法があいまい ということは、変数の指定がいけないと思うのですが ・・・ 変数の中身は、固定でないので(各行違うデータを文末につけるので) 変数を用いなればなりません。 sed以外でも ファイルの各行の文末に文字列を連結することが 出来るコマンドがあれば、そちらの方法でも構いません。 (行数分LOOPを回してやるというLOOP処理では行数が1万行とかあるので NGですが) 質問の仕方が下手で申し訳ありませんが、宜しくお願い致します。 ちなみにバージョンは、UNIX(r) System V Release 4.0 です。 どなたか、ご教授いただければ大変、嬉しく思います。 |
自己レスでごめんなさい。 10Hやって出来なかったので、質問したのですが、 インターネットで調べながらやっていたら、出来ました。 sed 's/$/,'$TEMPSTR'/' < test.txt でした。 また、1行目から2行目まで追加したい時は、 @ RW = 2 sed '1,'$RW's/$/'$TEMPSTR'/' < test.txt のようです。 ご参考までに #!/bin/csh set TEMPSTR = "LIST" @ RW = 2 sed 's/$/,123.45/' test.txt sed "s/^/${TEMPSTR},/" test.txt echo RW = $RW echo TEMPSTR = $TEMPSTR sed '1,2s/$/,GYOUMATSU/' test.txt echo "-----------------------------------------------" sed '1,'$RW's/$/'$TEMPSTR'/' test.txt echo "-----------------------------------------------" sed 's/$/,'$TEMPSTR'/' test.txt どなたかが参考になるといいなぁ・・・ では、お騒がせ致しましたです。 |
>>2808 愛子 > sed 's/$/,'$TEMPSTR'/' < test.txt もし "" でくくるなら、sed "s/\$/,$TEMPSTR/" ですが、 csh では "\"" とか '\'' というふうに - "" の中に " を入れる - '' の中に ' を入れる ことはできませんので、\ でエスケープしているといつかは 破綻します。よって、 > sed 's/$/,'$TEMPSTR'/' < test.txt のように必要なところのみ '' でくくるのはよいやり方だと 思います。 |
sendmailについての質問があります。 現在sendmailのバージョンは、8.9です。 現在使用しているドメインにもう1つドメインを追加したいのですが、 sendmail.cwファイルを作成して、そこを参照するように.defを このようにしました。 USE_cw_FILECLASS=yes cw_FILE_PATH='/etc/mail/sendmail.cw' そして、sendmail.cwの中にドメイン名を記述したのですが、 これだけでは、だめなのでしょうか? やりたい事は、1つのメールサーバーで2つのドメインのメールを受信 したいのです。 検討違いの事をやっているかもしれませんが、教えてください |
はじめまして、こんにちは。 HPを開いているのですがご相談があります。 ネットに関してまだ未熟なもので 申し訳ないですがよろしくお願い致します。m(__)m BBSを2つほどレンタルして設置しているのですが 管理人の記事管理モードなどを使うと 書き込み相手の【ホスト名】というのが表示されています。 これを使ってアクセス制限などをするようなのですが 私のBBSでは1つが【4つの数字】の表示(【IPアドレス】ですか?)で もう1つは【〜jp】での表示です。 これら【ホスト名】とは、パソコン1つ1つで絶対に違うものになるのでしょうか? 人によっては時々その数字やアルファベットが、多少変化しているのですが・・・。 同じ物は絶対に存在しないのでしょうか? 例えば学校内の1つの部屋に沢山のパソコンを置いている場合、 どのパソコンを使ってもこの【ホスト名】は別々のものになりますか? それとも同じになる事もあるのでしょうか? このような質問をさせて頂いたのは実はBBSに書き込みされてる方で 『2つのHNを使い、別人を装ってるのではないか?』と 思われる人がいるからなんです。 その2人の人物はいつも同じ日、同じ時間に書き込んでいるのですが 【ホスト名】が常に同じだったので疑った所 『友人で2人とも学校から書き込んでいる』といいます。 その人物達のホスト名は他の方達が【〜ne.jp】で終わってる所 【fm〜ngn.ed.jp】となっています。これは学校や団体を指すのでしょうか? わかりにくい文面で申し訳ないですが、 大変困ってますので、どうかよろしくお願い致します・・・。m(__)m |
>>2810 りょうこ よいと思います。あるいは MY_ALIAS で指定するとか。 >>2811 あおい > それとも同じになる事もあるのでしょうか? proxy サーバを経由しないと外に出られないようになっているなら、 ホスト名や IP アドレスは proxy サーバのものになります。学校や 会社などではよくある形態です。 > その人物達のホスト名は他の方達が【〜ne.jp】で終わってる所 > 【fm〜ngn.ed.jp】となっています。これは学校や団体を指すのでしょうか? ed.jp は小・中・高等学校などです。詳しくは http://www.nic.ad.jp/ja/dom/basics.html をどうぞ。ngn は「長野県」でしょうね。 |
>>2806 68user perl実行時にstraceしながらtcpdumpしましたが、パケットは流れませんでした。 ただstraceで若干気になったところがあるんですが、 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168\ .0.1")}}, 28) = 0 send(3, "9\307\1\0\0\1\0\0\0\0\0\0\3www\2jp\7freebsd\3org\0"..., 36, 0) = 36 gettimeofday({1025110376, 462410}, NULL) = 0 poll([{fd=3, events=POLLIN}], 1, 5000) = 0 と出力されるうち、sendの戻り値36は何を示しているんでしょう? # ちなみにプログラムはpollでタイムアウトを繰り返して終了します。 固定IPを指定してみましたが、やはり同様に名前解決できませんでした。 ipv6を切るのは、やり方がわかっていないのでまだやっていません。 Webの検索をしたときにSolarisで同じような問題にぶつかって、 それについてMLで質問している記録が掲載されていたのを見付けたので、 その人に直接メールで聞いてみようかなぁ。 # その記事には結末が載っていませんでした |
>>2813 has > sendの戻り値36は何を示しているんでしょう? 送信したバイト数ですが、この結果だけ見ればちゃんと query を 送信しているように見えます。 というわけで、strace は手詰りですね。後は netstat -s で統計 情報に何か出ていないか調べてみる、くらいしか思い付きません。 |
こんにちは パールのコードについて教えてください。 ログの読み込みなのですが、ファイルハンドルをオープンして通常は @log = <FH>; のような形で取り込むのですが、ログファイルの先頭の 1行だけ必要な場合、その1行だけを取得することはできるのですが、 書き換えたその1行を元の先頭に戻したいのです。 メモリ食いの @log = <FH>; は使わないで、while(<FH>){nantoka;} のような形で解決するコードは無いでしょうか。 よろしくお願いします。 |
>>2815 moto use IO::Handle して、sysopen して、<FH> して、先頭に seek で戻って print でいけるかな。 ただし、1行あたりの文字数が変わらない場合のみです。 |
こんにちは 68user さん 掲示板のログの読み込みに関してだったのですが、やはり、上手い手は無いようなのですね。 いつも思うのですが、open 関数の >> の追加書き込みでログの先頭に書きむ選択肢もあったら、while 関数ももっと活躍できるのにと残念です。 お騒がせしました。 |
>>2817 moto > open 関数の >> の追加書き込みでログの先頭に書きむ選択肢もあったら と言われて思い出しましたが、 +> や +>> ってのがありましたね。 ただ、繰り返しになりますが、文字や行の挿入はできませんよ。 あくまで上書きのみです。よって、あまりうれしくないかも。 |
教えてください。 vi エディッタで rm ファイル名で ファイルを削除してしまいました。 復元する方法はありませんか??? よろしくお願いします。 |
>>2819 飛鳥 一般的な UNIX のファイルシステムであれば、消したファイルは 復活できません。あきらめましょう。 |
ありがとうございます。 素直にあきらめます。。。。。。。。。 |
javaのRuntimeクラスを使いシェルスクリプトを実行させたのですが、 シェルスクリプトに引数が渡りません。 以下の記述をしてます。 Runtime.getRuntime().exec("test.sh","param"); シェルスクリプト側で$1変数から引数の値が取得できてません。 解決方法を知ってる方は教えて頂けないでしょうか? |
>>2822 help 試してませんが String args[]={"test.sh", "param"}; Runtime.getRuntime().exec(args); とか Runtime.getRuntime().exec(new String[]{"test.sh", "param"}); とかとか。 # 文法あってるかな・・・。 |
>>2823 68user わざわざ返答ありがとうございます。 返答された記述も上手くいきませんでした。 シェルスクリプト内で行っている処理なんですが、 引数で渡された値からファイルを削除する処理で 以下のような記述をしてます。 #!/bin/sh /** 別の処理 */ rm -rf $1 |
>>2824 help > 返答された記述も上手くいきませんでした。 何がどううまくいかなかったですか? また、うまくいかないと判断した根拠は何ですか? コマンドラインからシェルスクリプトを実行すると動くんですか? うちの Solaris8+J2SE SDK 1.3.1 では String args[]={"test.sh", "param"}; Runtime.getRuntime().exec(args); と Runtime.getRuntime().exec(new String[]{"test.sh", "param"}); それに Runtime.getRuntime().exec("test.sh param"); も動きました。 そもそも > Runtime.getRuntime().exec("test.sh","param"); はコンパイルできなかったのですが、そちらではコンパイルできているん でしょうか? なお、Runtime#exec の出力結果を取得したいならこちらを。 http://www.ongs.net/daichi/java/runtimeexec/index.shtml これをやらなくても画面に表示されないだけで、実行はされています。 |
>>2825 68user 説明不足で申し訳ありませんでした。 おかげさまでシェルスクリプト内で 以下の記述を追加して解決できました。 //削除したいファイルのパスに移動 cd /XXX/XXX rm -rf $1 |
はじめましてTetsuといいます 早速ですが質問があります WindowsでTCP/IPのプログラムを作っているのですがサーバーはどれにあたるのですか? メールサーバーでしょうか?それともWWWサーバーなのか良くわかりません 自分ではチャットみたいなプログラムを作りたいと思うのですがサーバーとクライアントの関係がまだ良くつかめません 具体的に教えてもらえると助かります |
>>2827 Tetsu 「はじめにプロトコルありき」と考えるのはどうでしょうね。 HTTP というプロトコルがあります。HTTP を喋るサーバと HTTP を喋るクライアントが必要です。HTTP を喋るサーバは web サーバです。HTTP を喋るクライアントはブラウザです。 よって、web サーバとブラウザがあれば HTTP で遊べます。 で、あなたはチャットみたいな機能が欲しいと。プロトコルは何にしますか? 1. IRC 2. HTTP (web 上でのチャット) 3. 自作プロトコル 1 の場合、IRC というプロトコルは既に存在します。IRC プロトコルを喋る サーバは既に存在します。IRC プロトコルを喋るクライアントは既に存在します。 よって、IRC サーバと IRC クライアントをインストールすれば OK です。もし IRC サーバに不満があるなら自作することもできます。IRC クライアントに 不満があるなら自作することもできます。 2 も 1 と同じ。 3 の場合、あなたが新しいプロトコルを設計します。何から何まであなたが 勝手に決めます。しかし、そのプロトコルを喋るサーバもクライアントも この世には存在しませんので、両方とも自作する必要があります。 …というので回答になってますか? |
回答ありがとうございます 自分の聞きたかった質問の解答になってます ありがとうございます 早速1か2の方法でためしてみたいと思います 3はもう少し勉強してからのほうがいいと思うので |
>>2829 Tetsu > 早速1か2の方法でためしてみたいと思います という選択をするのはそれはそれで構わないのですが、チャットアプリを 作ることが目的ではなく、TCP/IP プログラミングの勉強が目的なのなら、 多分遠回りになります。 まずは入力された文字を参加者全員に返すサーバを作る。クライアントは telnet コマンドで代用。 そこからどんどん機能追加して、名前を入力できるようにしたり、部屋を 作れるようにしたり、誰かが入室・退室したときは全員に通知するように したり、ファイル送受信できるようにしたり…という方がいいかもしれません。 |
教えてください。 あるマシンで NFS の share を行って、他のマシンからそれのディレクトリを mountすると、他利用者に何か影響を及ぼすようなことが発生するのでしょうか? |
連続してすみません。 教えてください。 dfmountsコマンドを使用する場合、動作環境の条件は、どのようなものがよろしいのでしょうか? |
始めまして。UNIX初心者です。 今、cシェルを主体としているUNIXにログインしているんですが、 自作のプログラミングを流すと、 : 構文エラー at line 59: `end of file' unexpected というエラーメッセージが出るんですが、 「ファイルのエンドコードがないっす」って意味だと思うんですが、 この対処法とかあったら教えて下さい。 因みに自分の記述は一行目から "#! /usr/bin/sh"とかって、シェルがちゃうやん!! みたいな指摘もあったりなかったり(爆 |
はじめまして。 HTTPクライアントについて教えて頂きたいのですが、C言語でHTTPクライアントを作成したく、こちらの「C言語でHTTPクライアントを作ってみよう」を参考にしております。それで、そちらにあるソースではGETの場合を例にしておりますが、これはPOSTでも可能なんでしょうか?また、その場合どのようにすればよろしいのでしょうか。 よろしくお願いします。 |
>>2883 シケ゛ > : 構文エラー at line 59: `end of file' unexpected 直訳すると 予期せぬ「ファイルの終わり」 意訳すると 次に○○が現れると予想していたのに、ファイルの終端まで 到達してしまった というわけで、if に対応する then や fi がないとか、case を esac で 閉じてないとか、そういったことでしょう。 # ファイルの最終行に改行コードがないという可能性も捨て切れませんが。 > ファイルのエンドコードがないっす UNIX にはファイルの終端コードというものはありません。 >>2834 麻耶 > これはPOSTでも可能なんでしょうか? 可能です。 http://x68000.startshop.co.jp/~68user/net/http-4.html を読んでください。 |
>>2831 シド 僕は NFS に詳しくないのでよくわかりませんが、返事が付かないのは 質問が曖昧だからでしょう。 まず、OS とバージョンが不明です。 >>2783 シド > - /home rw=nini:gp7000s,root=gp7000s "File Service" GP7000S っていうことは Solaris か UXP/DS か HP-UX かなぁと 思いますが (Solaris しか載らないんでしたっけ?)、ちゃんと サーバとクライアント両方について、OS とバージョンを明記 すべきです。 また、何をどう設定したのかがわかりません。share の引数は? NFS クライアントからどうやってマウントしたのですか? NFS クライアントからは正常にアクセスできているのですか? > 動作環境の条件はどのようなものがいいか どのような、って何を聞きたいのかわからないです。うまく動作しないのは 動くための条件をクリアしていないのではないか、ということですか? > 他利用者に何か影響を及ぼすようなことが発生するのでしょうか? 「他利用者」ってどのマシンの利用者ですか? クライアント? サーバ? 要は何か問題が発生しているのですか? ただ単に心配しているだけですか? 業務で使用していて問題が発生しているなら、サポートに聞いた方が いいと思いますよ。そっちの方が早いし、正確だし、とことんまで 調べてくれるでしょう。 あとは、人の多い http://pc.2ch.net/unix/ で質問してみるとか。この掲示板なんて、1日100〜200程度のアクセスしか ありませんので。 |
回答ありがとうございます。 幾度か試してみまして、出来ませんでしたのでこちらに書き込んだのですが、よく確認しましたところ空行の入れ忘れでした。本当に申し訳ありませんでした。 |
すみません。 書き込みの内容が、曖昧でした。私の使用しているのは、確かにSolaris です。 (クラスタサーバモデルなので2つともです。) shareの実行は、「share -F nfs -o rw=ss10:gp7000s,root=gp7000s -d "File Service" /home」 上記の共有を実行しました。 これをもう1つ別のサーバでマウントして、dfmountsを行う。 (dfmounytsはオプションにサーバ名を入れる事が出来た) このときdfmountsを行う動作環境として何か問題または、条件が有りますか。 |
回答ありがとうございました(^^) 無事プログラム流れてくれました。 結局、if文内にあったechoのダブルクォーテーション不足でした ご迷惑かけました(^^; |
教えていただきたいのですが、HTTPでファイル転送するものをC言語で作りたいのですが可能でしょうか? また参考をなるものがありましたら教えて頂けないでしょうか。 よろしくお願いします。 |
すいませんが、どなたか文字列置換に詳しい方がいらっしゃいましたら教えていただきたいんですけど、あるディレクトリ以下の全てのファイルを対象に文字列置換を行う際の書式を教えて下さい。 で、文字列中に記号や空白が含まれるので、例えば「top.test/mail.html」という文字列を「i = window.close();」という文字列に置換する際はどういったコーディングになるのか教えて頂けたらさいわいです。 sedコマンド等で色々と試したのですがどうしても上手く行きません。 どなたかわかる方いらっしゃいましたら教えて下さい。 もう3日ほど悩んでいます。。。お願いします。 |
>>2841 かず Perlで、 s#top\.test/mail\.html#i = window.close();#g; とか・・・ s#\Qtop.test/mail.html\E#i = window.close();#g; |
お世話になっています。 初心者の質問で申し訳がありません。 MA-300というハードにPostgreSQLをインストールをしました。 そこで、自動起動を行いたいのですが、 /etc/rc.d/rc.local に起動コマンドを書き込んでも起動しません。(red hatでは起動したので、コマンドは正しいかと思います。) 私の初心者ながらの推測では、起動時にrc.localは呼ばれていない気がします。(rc.localの中身は空なので、現状では呼ばれなくてもさしあたりがない。) そこで、またまた初心者的な発想なのかもしれませが、 /etc/rc.d/rc.sysinit に、直接コマンドを書き込んでもいいのでしょうか? ご教授ください。 また、他にいい方法があれば、お教え願います。 よろしくお願いします。 |
>> 早速1か2の方法でためしてみたいと思います >という選択をするのはそれはそれで構わないのですが、チャットアプリを >作ることが目的ではなく、TCP/IP プログラミングの勉強が目的なのなら、 >多分遠回りになります。 すみません少し勘違いしてました 目的はTCP/IPプログラミングの勉強です チャット機能を持ったプログラムはTCP/IPを理解する上で作りたいと思ってるものです で質問なのですがサーバプログラムは作成しないといけないのでしょうか? プロバイダーのサーバにつないでMSNメッセンジャーのような感じで作りたいのですが |
>>2840 紅絹 > HTTPでファイル転送するものをC言語で作りたいのですが可能でしょうか? やろうと思えば何だって可能ですが、そもそもファイル転送って何ですか? ファイルを GET することですか? それとも http://tohoho.wakusei.ne.jp/wwwxx034.htm のようにファイルをアップロードすることですか? >>2843 シゲ > /etc/rc.d/rc.local に起動コマンドを書き込んでも起動しません。 Linux なら http://www.zdnet.co.jp/help/howto/linux/0007master/01/08.html のように S99PostgrSQL と K99PostgreSQL を作るのが普通だと思います。 >>2844 Tetsu > で質問なのですがサーバプログラムは作成しないといけないので > しょうか? プロバイダーのサーバにつないでMSNメッセンジャーの > ような感じで作りたいのですが IRC や ICQ や MSN メッセンジャーのように、既にどこかにサーバが 立ち上がっているのなら、わざわざサーバは作らなくてもいいです。 ただし、こういうのを読んでプロトコルを理解する必要があります。 IRC: http://www3.alpha-net.ne.jp/users/tycho/mokuji.htm ICQ: http://www.d.kth.se/~d95-mih/icq/ MSN メッセンジャー: http://www.tlsecurity.net/Textware/Misc/draft-movva-msn-messenger-protocol-00.txt (これは古い) 作るのにとても苦労するでしょうけど、まぁこういうのが好きならば 結構楽しいと思います。 苦労しつつも楽しんでいる人々: http://pc.2ch.net/test/read.cgi/tech/1006154451/ |
マウント、シェア関係はほとんど解決できました。 1つ解らないことがあるので、教えてください。 sunOS Solaris7 を使用しています。 NFS サーバーで NFS サービスの実行があるのですが dfmountsコマンドを実行したいとき、どのデーモンを起動すればいいのか? mountの場合、mountdプロセスが起動していれば、mountコマンドが実行できました。 |
教えてください。 現在POSTをつかったHTTPクライアントをC言語で作成しているのですが、[HTTPクライアントを作ってみよう]のPOSTメソッドを参考に sprintf(send_buf, "POST %s HTTP/1.0 \r\n", path); write(s, send_buf, strlen(send_buf)); sprintf(send_buf, "Content-Length:8\r\n"); write(s, send_buf, strlen(send_buf)); sprintf(send_buf, "Content-Type:text/plain\r\n", path); write(s, send_buf, strlen(send_buf)); sprintf(send_buf, "\r\n"); write(s, send_buf, strlen(send_buf)); sprintf(send_buf,"NAME=aaa\r\n"); write(s, send_buf, strlen(send_buf)); という風に作ってみたのですが、ヘッダの方は正常に送信されている みたいですが、パラメータが正常に送信されていないようなんです。 ご指摘よろしくお願いします。 |
教えてくれた方、ありがとうございました。 その後四苦八苦してなんとか自分で解決できました。 ありがとうございました。 |
ご回答ありがとうございます。 ファイル転送についてですが、GETとアップロードの両方おこなうものを作りたいと思っています。説明不足で申し訳ありませんでした。 |
はじめまして、いつもお世話になっております PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら タイムアウト処理を、と言ったことをしたいのですが、以下のプログラムでは うまく行きませんでした。TCPdumpで見てたところ、何回もSYNを投げなおした後 数分後にやっとエラーメッセージを表示してくれます。 よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく 最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後 エラーメッセージを出す動きをしていました。 何かアドバイスなど有りましたらよろしくお願いいたします なお、PerlのVersionはThis is perl, v5.6.1 built for i386-linux-thread-multi です $socket = new IO::Socket::INET ( PeerAddr => "$address", PeerPort => "$port", Proto => 'tcp', TimeOut => 10 ); unless ($socket) { print STDERR "Connection Error at $date\n"; close($socket); } |
>>2850 しっぽ > PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら その辺を管理するのは OS の TCP スタックなので、プログラム側 からはどうにもなりません。 > よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく > 最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後 > エラーメッセージを出す動きをしていました。 これも、そういうものです。 Solaris だとタイムアウトまでの時間を変更できたしますが、その他の OS では変更できない可能性が高いです。 もし connect 時のタイムアウト処理をしたいという目的ならば、 ノンブロッキングソケットを使いましょう。 >>2847 mattu > パラメータが正常に送信されていないようなんです。 その判断が間違っているような気がします。そう判断するに至った 根拠が明示されていないので、ただのあてずっぽうですが。 |
ご回答ありがとうございます。 別にあてずっぽうではなく、サーバ側でデバックにて確認してみると、渡しているデータが入ってなかったのと、渡されたヘッダ・パラメータがファイルに出力されるようにしており、JAVAで作成したものでしたら正常に出力されるのですが、Cで作成したもので試してみるとヘッダの部分のみ出力されるのでそう思いました。デバック等にはVAJを使用しております。 言葉不足ですみませんでした。 |
>>2852 mattu - ボディの最後の \r\n は不要 (もし \r\n を付けるなら Content-Length は 10 であるべき。でも \r\n 付けていいのかな?) - リクエストに Content-Type ヘッダは不要 という点を直しても まだボディが渡らないようなら、その C のプログラムが おかしいんだと思います (てゆーか、Java でうまくいって C でうまくいかない なら、C の方を疑うべきでしょう)。 詳しくはこちらなど。http://www.studyinghttp.net/headers.html |
>>2845出来ました。ありがとうございます。 |
教えてください。 showmountコマンドは、OSのサポートバージョン等が制限されていますか。 showmountコマンドの実行制限が何かありましたら、教えてください。 |
ご回答ありがとうございます Cで作るHTTPクライアントの件ですが、やはりボディが渡りません。 ソースの方を確認しましたが、おかしいと思われる箇所は見つかりませんでした。 環境が原因で渡らないというのはあるんでしょうか? 現在はUNIX上でコンパイル・実行をしてWin2000上のVAJにつないでいるんですが、関係あるのでしょうか? また、ボディの書き方で何か注意しとくべきことありますでしょうか? よろしくお願いします。 |
>>2856 mattu > ボディの書き方で何か注意しとくべきことありますでしょうか? 結局何をどうしたのかわからないので、何とも言えません。 - VAJ をやめて別のサーバ (Apache など) にしてみる - パケットをモニタして、java 版と C 版の違いを調べる あたりをやれば何かわかるんじゃないでしょうか。 >>2856 mattu >>2855 シド とりあえず http://www.hyuki.com/writing/techask.html を読んでみてください。 |
>>2851 68user ご回答ありがとうございます そんな気はしてたのですが、やっぱりそうですか ただ、TimeOut => 10 の所は何に反映されるのかってのがちょっと気になりました。 確か<$socket>やsysreadで読んだときに読むべきデータがないと TimeOutの時間を過ぎても返ってこなかったと思いますので… >ノンブロッキングソケットを使いましょう。 これってつまりは「読むべきデータが無いときに待たない」って 事ですよね。Perlでは使えますでしょうか?? 確立時の話じゃないですけど、Cのrecvなんかは待たないので 便利だったり不便だったりといった感じではあったのですが… |
>>2850 しっぽ > PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら > タイムアウト処理を、と言ったことをしたいのですが この目的を聞かせてください。connect で数分待ってしまうのがイヤだから なんとかしたい、ということだと受け取ったのですが、 > Cのrecvなんかは ということは、read/write のタイムアウト管理 {が or も} 目的なのですか? |
>>2850 しっぽ IO::Socket::INETなんて高級な物を何故そこで使うのかがわかりませんが、 http://www.cotse.com/sw/portscan/halfscan.c のプログラムと同等のことをPerlからやりたいなら、 http://search.cpan.org/doc/SKOLYCHEV/Net-RawIP-0.09d/RawIP.pm でなんとかできませんか? libpcapのラッパーなのでそれがmakeに要る ようです。 タイムアウトは、 >なお、PerlのVersionはThis is perl, v5.6.1 built for i386-linux-thread-multi です とのことですから、threadを使ってなんとかできそうですが Perlのthreadなんて使ったこと無いのでどうなのか知りません。 Rubyなら http://www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap-j.html なんてのもありますがこっちは目的の機能は無いようにみえます。 |
未だRedhatで名前解決できず、気が向いては眺め、弱っています。 Redhat7.1.94(雑誌に付属)を再インストールしてみましたが、 症状は変わりませんでした。 >>2814 68user [netstat -s]は、どういった項目をどのような観点から観察したらよいでしょうか? 使ったことも知識も無いので、よかったら今後のためにもアドバイスください。 >>2779 has いまさら経緯の説明をはじめるのも遅すぎかとは思うのですが、 そもそもこういった状態になったのは、LANからインターネットへの回線が ISDNからADSLに変わり、それと同時に各ユーザマシンに割り当てられるIPが グローバルIPからプライベートIPに変わってからでした。 それまではRedhatからでも名前解決に時間がかかりながらも なんとかアクセスできていました。 # Win2kとのデュアルブートなんですが、ADSLになる以前からも、 # Win2kは素早く名前解決できてRedhatで時間がかかるという差が # あったことが、既におかしかったのかもしれません… とりあえず現在の状況はこんな感じでうまくいっていません。 以上ご報告まで。 |
はじめまして。 HP-UX11のインストールをされた方がいらしたら幸いです。 質問があります。 locale -a で表示されていないロケールを、OSインストール後に、個別でインストールできるでしょうか?OSの入れなおししか、方法は無いでしょうか? # setenv LANG japanese を設定しても、Warningが出てしまいます。何とか個別でインストールしたいのですが・・・ 乱文ですみません。よろしくお願いします。 |
はじめまして 現在Solaris2.6 + iPlanet4.0 でWebサーバを利用しています。 先日CGIを使いたいとの要望がありiPlanetに対してCGIの設定を行った のですが、"Method Not Allow"というエラーがブラウザに表示され、 CGIを実行することができません。 原因がわかる方、ご教授願えないでしょうか。 iPlanetに対して行った設定は下記のようなものです。 <やりたいこと> 〜/cgi/ ディレクトリに設置したcgiファイルを実行したい 1.サーバマネージャで[Program]→[CGI Directory]を選択し、上記ディレクトリをURLにマッピング 2.サーバマネージャで[Program]→[CGI File Type]で上記ディレクトリを選択し、ON状態に設定 3.利用するCGIファイルのパーミッションに777を設定。とりあえず動かすのが目的なのでフルアクセスを許可してみました(^^; |
>>2861 has えー、混乱してきたのんでまとめると、 /etc/host.conf order hosts,bind /etc/resolv.conf nameserver 192.168.0.1 名前解決ができない。 netscape や perl -e "use Socket;print inet_ntoa(inet_aton('www.jp.freebsd.org'))" は NG。 nslookup, host, dig は OK。 → gethostbyname 系がダメっぽい。 dig は OK? NG? tcpdump の結果 netscape も perl も query 投げていないようだ。 strace dig の結果 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented) socket(PF_INET6, SOCK_STREAM, 0) = -1 EAFNOSUPPORT (Address family not supported by protocol) connect はしていないようだ (by has) → これは dig は名前解決できないという意味? nslookup と host が OK で、 dig が NG ならば、ちょっと理解できません。UDP は「connect して send」 「connect して send」の両方のやり方がありますが、dig は「conenct して send」するはず (てゆーか大抵の DNS クライアントは connect すると 思う)。 strace perl の結果 socket(PF_UNIX, SOCK_STREAM, 0) = 3 connect(3, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0 → perl (から呼ばれる libc の resolver) は正常動作していると思う。これで パケットが飛ばないなら、OS の TCP/IP スタックが腐ってるとしか…。でも nslookup や host は OK というなら違うのかなぁ。nslookup や host を strace するとどうなるんでしょう。 > [netstat -s]は、どういった項目をどのような観点から観察したらよいでしょうか? えー、UDP を投げた後 ICMP (かな?) が返ってくるサマを見て、何か わかるかなーと思いましたが、今考えるとおそらく netstat -s では 原因まではわからないでしょうね。netstat -s については、2〜3ヵ月 以内の UNIX USER に詳しく説明されていましたので (Solaris,FreeBSD, Linux の netstat -s の違いも含め)、興味があればそちらを。 あと、本当にお困りなら linux.or.jp あたりのメーリングリストで 質問した方が早いと思うですよ (もちろん解決しなくてもいいなら こっちで続けても構いません)。 |
>>2862 HP-UXSE > locale -a で表示されていないロケールを、OSインストール後に、 > 個別でインストールできるでしょうか? HP-UX は使ったことがないのでわかりません。僕は Solaris で同じ ことをする正しい方法を知りたい。 # 昔 ja_JP.eucJP ロケールが入ってなかった Solaris に、他の # Solaris マシンから/usr/share/locale/ja_JP.eucJP (だったかな?) # をごっそり持ってきて動かしたことがある。 >>2863 とも 残念ながら iPlanet も使ったことありませんのですよ。 |
>>2861 has そうそう、/etc/nsswitch.conf は hosts: files dns てな感じになってますか? |
>>2859 & 2860 レスありがとうございます >この目的を聞かせてください。connect で数分待ってしまうのがイヤだから >なんとかしたい、ということだと受け取ったのですが、 サーバーのサービスの監視が目的です。L4SW(サーバーロードバランサー)なんかだと 5秒間隔のSYNに3回連続で応答しなければ死んだと見なすなんてヘルスチェックを 良くやるのですが…、3分にもわたって6回連続で応答しない場合のみ死んだと見なす ってのはちょっと嬉しくないです #これ書いててL4SWが余ってるからそれでやっても良いことに気づいた…(^^; Writeのタイムアウトの方法は知りませんが、readのタイムアウトは以前 $selector->can_read あたりをやってみて上手くできていたような気がします >IO::Socket::INETなんて高級な物を何故そこで使うのかがわかりませんが、 低水準な物の存在を知らなかったので… Net::RawIP ってのは名前からして使えそうな気がします。ぐぐるで調べて 何件か出てきたので見てるところですが、ただ今のところ送るのはともかく その後どうやって受信したら良いかが良くわかってなかったりします まあAttackingに使うには良いのかも知れませんが |
>>2867 しっぽ であれば、ずっと connect しっぱなしで定期的にデータを 送り、返答がなければ異常とみなすのはどうでしょうか? で、connect のタイムアウトですが、IO::Socket のソースをちらっと 見て $SIG{ALRM} やら alarm やら書いてあったので、connect 時にも タイムアウトが働くはず…と思っていたのですが、実際に試してみると タイムアウトになりませんでした。なので、 $SIG{ALRM}=sub { print "SIGALRM!\n"; }; alarm(10); $socket = new IO::Socket::INET (...); alarm(0); こんな感じで。 |
>>2868 68user ちなみに connect 中に SIGALRM が飛んでくると $! (errno) には Interrupted system call が入ります。でも、IO::Socket は内部で $! が潰されてしまう ようですね。 そういう意味でも、KL さんのおっしゃるとおり高級なものを 使うのは避けた方がよいかも。 |
>>2867 しっぽ >何件か出てきたので見てるところですが、ただ今のところ送るのはともかく >その後どうやって受信したら良いかが良くわかってなかったりします sendメソッドがありますがrecvが無いですね。 前記の通りRawIPはlibpcapのラッパーなので、libpcapへのインターフェイス がPerlに露出されてます。キャプチャせよということでしょう。 http://search.cpan.org/doc/SKOLYCHEV/Net-RawIP-0.09d/RawIP/libpcap.pod halfscan.cを(Perlなり他の手段を経由するなりして)raw socketの使えるシェル から使えば一番手短に済んで良いと思いますけども。 Perlでなければならない理由が何かあるのでしょうか。また、監視対象のサービ スも何か分からないので、halfscan.cが一番汎用で楽です。 >まあAttackingに使うには良いのかも知れませんが どこがどのように良いのでしょう? >>2868 68user 「connectしっぱなしで対象サービスを監視しているサービスが 正常に動いているか」を監視するサービスが必要で、さらにその サービスを監視するサービスが...というのを考えつきました 笑 この循環を止めるには、せいぜいhalfscan.cを、切れない回線の 向こうにある落ちないOSから定期実行するか、もしくはしっぽさん の仰られるような信頼性の高い機械を使うしかないのでは。 |
>>2864 68user > 名前解決ができない。 nslookup,host,digは動作OKです。 > → これは dig は名前解決できないという意味? nslookup と host が OK で、 > dig が NG ならば、ちょっと理解できません。 strace digについては、dig自体は正常に動作し名前解決しているが、 ご指摘のsend()のコールが見つからないという意味です。 かわりにwrite()のコールがあるので、sendではなくwriteを使っているのでは と想像していますが、straceで表示されるwriteで送っている文字列(?)は 内容が意味不明で、writeがsendの代わりに使っていると断言する自信は ありません(dnsライブラリのソースや解説を見たわけではないので)。 実際には次のようになります。 % strace dig www.jp.freebsd.org >& strace-dig.txt % grep 'write(' strace-dig.txt write(4, "\t\0\0\0\5\0\0\0\2\0\377\277\266\3066\1\0\240\5\10\340"..., 148) = 148 write(4, "\200-(@\0\0\0\0\0\372\377\277\200T$@\10P<@\3@\0\200\0\0"..., 148) = 148 write(4, "\200-(@\0\0\0\0\20\372\377\277\220q$@XP<@\3@\0\200\0\0"..., 148) = 148 write(4, "\200-(@\0\0\0\0\0\372\377\277 \365$@\350\"\6\10\3@\0\200"..., 148) = 148 write(4, "\200-(@\1\0\0\0\2\4\0\0Ho\26@\320\371\377\2771\220\0@\334"..., 148) = 148 write(6, "\377\377\377\377", 4) = 4 write(4, "\200-(@\1\0\0\0\4\f\0\0\30V(@\260\214\'@\240\224;@\310"..., 148) = 148 write(4, "\200-(@\1\0\0\0\3\10\0\0\376\274\'@\340\"\6\10\260\230"..., 148) = 148 write(4, "\200-(@\2\0\0\0\0\0\0\0*\22:@t\241;@@0<@8\372\377\277\372"..., 148) = 148 > → perl (から呼ばれる libc の resolver) は正常動作していると思う。 確かに正常動作しているように見えます(想像ですが)。 ここで気づいたことがあるのですが、dnsを直接操作するコマンドと gethostbynameを呼んでいると思われるコマンドで互いのstraceの結果を見比べると、 dns処理のためにオープンしているライブラリが異なっているようです。 またネットを検索していて気づいたのですが、glib2.1.??あたりにバグが あるらしいです(情報自体は古いですが)。 もしかしたらバグのあるバージョンかもしれないので調べてみます (今回の名前解決とは関係のないバグかもしれませんが…)。 > netstat -s については、2〜3ヵ月以内の UNIX USER に詳しく説明されていましたので 見つけたら是非読んでみようと思います(書泉行き?)。 > あと、本当にお困りなら linux.or.jp あたりのメーリングリストで > 質問した方が早いと思うですよ (もちろん解決しなくてもいいなら > こっちで続けても構いません)。 解決しなくていいわけではないですが、まだねばりたいです。 いつまでも同じ話題でいいかげん飽きている、という気もしますが、 もう少しお付き合いくだせい。 |
>>2866 68user > そうそう、/etc/nsswitch.conf は > hosts: files dns > てな感じになってますか? ご指摘の記述は存在しました。 |
初めまして。たまにこのホームページにお邪魔させて頂いてます。 FreeBSDのFileSystemについて質問があります。 早速ですが、質問させていただきます。 iノード番号から、struct inodeまたはstruct dinodeを取得する関数(system call)があれば、その関数名を知りたいのですが。 どなたか、ご存知の方はいらっしゃいませんでしょうか? |
初めまして。すばらしいサイトですね! 私はまだunix初心者なので、貴サイトにはお世話になっております。 Mewについて調べたところ、 http://www.mew.org/index-j.html へのリンクが切れてました。 今は http://www.mew.org/index.html.ja もしくは http://www.mew.org/ で行けると思います。 これからも頑張ってください。 |
>>2873 kaworu > iノード番号から、struct inodeまたはstruct dinodeを > 取得する関数(system call)があれば たぶんないです。 struct inode や struct dinode は UFS にしか存在しないので、 UFS, NFS, DOS ,ext3, VFAT, FAT32 など、複数のファイルシステムを サポートしなければならないシステムコールとしては存在しないです。 もしやるなら /dev/da0c などのデバイスを直接オープンすること になると思いますが、clri, fsck, fsdb などのソースが参考に なるかもしれません。 >>2871 has > dns処理のためにオープンしているライブラリが異なっているようです。 とりあえず ldd でどのライブラリを使っているか見たり、nm や objdump でどの関数を使っているか調べてみるとよいかもしれません。 |
>>2875 68user > struct inode や struct dinode は UFS にしか存在しないので、 ああ、いきなり嘘を書いてしまった。 struct inode はメモリ内 inode なので、全ファイルシステムで 利用可能ですね。 |
はじめまして!!UNIX初心者なのですが、こちらには本当にお世話になっております。 素晴らしいサイトだと思います。 数あるコマンドリファレンス本がほとんど無用になりました。 でも先週、なぜかまったくアクセスできなくなってしまい、大変つらい思いをしました。 こんな聞き方失礼でしょうが、こちら、閉鎖されてしまう予定とかないですよね? もしなくなってしまったらとてつもなく悲しいです。業務にも支障が出てしまいます(悲しくて(笑)) もし一括ダウンロード等の仕組みがあったらぜひバックアップしておきたいくらいです。 ぜひぜひ永続を願わんことを・・・管理人様の労力を無視した勝手な発言で申し訳ありませんが。 |
はじめまして。いつもいつもUNIXの勉強でお世話になっています。 本当に素晴らしいサイトですね。 私もダウンロード等で保存しておきたいぐらいです。 市販の参考書よりもわかりやすく、とても参考になります。 これからもよろしくお願いします。 |
はじめまして。UNIX初心者なのが、いつもお世話になってます。 今、会社でHP−UNIX10.20を使用しています。(勉強中) DATテープにデータをバックアップするのにfbackupコマンドを使用しています。このfbackupでバックアップした内容を確認するコマンドって何ですか?ちなみにtar cvでバックアップした内容の確認はtar tvで確認できますよね?以上、ご存知の方教えてください。 |
>>2877 カトウ > でも先週、なぜかまったくアクセスできなくなってしまい、 > 大変つらい思いをしました。 8/2 あたりから 10日ほどマシンが落ちてました。マシンがリモートに あるため対応が遅くなり失礼しました。 > こちら、閉鎖されてしまう予定とかないですよね? 現時点では閉鎖予定はないですが、なにぶんにもタダで借りさせていただいて るものですから、マシンがクラッシュしたらどうなるかわかりません。そしたら どこかでサーバ探すでしょうが、それもいつになるかわかりませんし、移転の お知らせはできないかもしれません。 それまでに頑張って man と google だけで問題解決できるようになって ください。 >>2879 hiro man fbackup を読みましょう。 http://www.calpoly.edu/cgi-bin/man-cgi?fbackup 読むのが面倒なら、SEE ALSO の項目だけ見て、それっぽいコマンドを 試しましょう。僕は HP-UX を使ったことがないので、どれがそのコマンド なのかはわかりません。 |
シゲと申します。 今、red hat 7.1でパッケージソフト開発を行っています。 複数のプロセスが立ち上がるもので、それぞれのメモリー使用量を確認を行っています。 meminfoにより合計のメモリ使用量を測ると13Mぐらいしかないのに、それぞれのプロセスの /proc/(プロセス番号)/status のVmSizeを合計すると、150Mぐらいになってしまいます。 150Mは間違いなく間違っていると思います。 単プロセスのメモリ使用量ってほかに計り方がないのでしょうか? ご教授お願いします。 |
>>2881 シゲ 例えば、ls を同時に 2 プロセス実行していても、メモリ上に配置される /bin/ls の テキスト領域 (命令文の領域) は 1 つしかありません。同様に libc などのライブラリの テキスト領域も共有されます。そこらへんで食い違いが出ているのではないかと思います。 > 単プロセスのメモリ使用量ってほかに計り方がないのでしょうか? どーなんでしょうねー。status の Vm* を足したり引いたりしたら 計算できそうな気もしますが、正確なところはわかりません。 まぁ、ここらへんのテキスト領域をどう計算したいのかにもよると思います。 |
ご教授有難うございます。 帰りの電車の中で考えていたら、ひらめきました。 全プロセス立ち上げ時の,/proc/meminfoの全使用メモリ量から、測定したいプロセスをkillしたときの/proc/meminfoの全使用メモリ量を引けば良い気がしました。 しかし、考えてみれば68userさんのおっしゃるとおり、共有メモリが存在するから、正確な結果ではありませんね・・・。 こまったな・・・。 |
>>2883 シケ゛ 結局は用途次第なわけですが、普通の環境であれば daemon 類が libc を 使っているでしょうから、そこらへんは無視していいでしょう。 あとは、横軸: プロセス数、縦軸: メモリ使用量なグラフでも書いて、 「n クライアント、m リクエスト/sec だと XX MB 程度必要」 とか書いておけばいいんじゃないでしょうか。 # 手抜き? |
はじめまして。 いつもこちらのサイトにお世話になっています。 パスの設定のされていないコマンドにパスを設定するには どうすればよいのでしょうか(絶対パスでは実行できます) 初歩的な質問で恐縮ですがお教えいただけませんでしょうか。 よろしくお願いいたします。 |
>>2885 ホームズ % hoge hoge: Command not found. % /foo/bar/hoge (実行できる) という状況で、hoge とだけタイプすれば実行できるようにするには どうしたらよいか、ということですか? 環境変数を使うのが一番簡単でしょう。 % setenv PATH ${PATH}:/foo/bar (csh・tcsh 系) $ PATH=${PATH}:/foo/bar; export PATH (sh・bash 系) csh・tcsh 系なら set path=($path /foo/bar) でもいいです。 |
お返事ありがとうございます。 68userさんの言われたとおり設定したらできました。 どうもありがとうございました。 |
初めまして、よろしくおねがいします。 お聞きしたいことがあります。 tar xvzf .tgz して、うまく展開したのですが、 もう一度 練習で、やってみようと思うと、 Only one compression option permitted とでてしまいます。 一回しかできないという意味なのでしょうか? 一回、 .tgzを消して試しましたが、同じでした。 初歩的かもわかりませんがよろしくお願いします。 |
>>2888 26歳 > Only one compression option permitted 一つの圧縮オプションしか許されていない。 =複数の圧縮オプションを指定することはできない。 というわけで、Z・z・y・j などの圧縮形式を指定するオプションを、 複数個指定したのでしょう。 例えば tar zxvzf とか、tar xvZzf とか。 |
はじめまして、こんにちは。 環境:Redhat7.3 ログインしているユーザが、現在何処のディレクトリにいるか っていうのを調べることは可能でしょうか? 「who」のオプションであったりしますか? 宜しくお願いします。 |
>>2890 Bootick root 権限があるなら ps -ef eww で環境変数 PWD を見るとか、 /proc の下を覗いてみるとかですかねぇ。 root 権限がないなら無理ではないかと思います。 |
telnetやcgiを使って本IPをメモするソースがほしいのですが、どうしたらいいですか?それと出来れば設置方法も教えてほしいです。素人なのでまったく分かりません。PCに詳しい方、お願いします |
はじめまして。 先日 /dev/null が消えてしまい、少なからずシステムに影響が出てしまいました。 それまで安定稼動していたのに、何故突然消えてしまったのか原因がわかりません。サーバ上で特に作業はしていませんでした。 どなたか同じ現象に遭遇した方いらっしゃいませんか? |
はじめまして。 いつもお世話になっています。 Linuxにて「Proxy サーバ経由の SSL 通信」を行おうと考えております。 「ネットワークプログラミングの基礎知識」にSSL 通信の方法が 記載されていますが、Proxy 経由の方法が分からず、現在格闘中です。 Proxy サーバへの接続はできました(HTTP の通信は OK です)。 Linux & C言語の初心者で恐縮ですが、 これらの技術的なアドバイス・参考になるサイトなどがありましたら、 ご教授下さい。 よろしくお願いします。 |
>>2894 あきゆき 平文で、 CONNECT target.host.com:443 HTTP/1.0\r\n Host: target.host.com\r\n \r\n を送って、サーバから \r\n\r\n が来るまで読み込み (全データが到着するのを待つ)、その中に " 200 " が 含まれていれば接続成功。 その後は SSL でやりとりする、という方法で一応接続はできています。 (" 200 " が含まれていれば OK などという適当な方法以外の) まっとうな やり方は知りません |
>>2895 68user 早速のご返答、ありがとうございます。 ご指摘のように、"CONNECT 〜"を行い、サーバーから "HTTP/1.0 200 Connection established"という応答がきたので、 その後、下記の SSL の設定を行いました。 ---------- SSL_load_error_strings SSL_library_init SSL_CTX_new SSL_new SSL_set_fd SSL_connect←戻り値"0"が返されます。 ---------- SSL_connect で TLS/SSL handshake に失敗したので、 SSL_get_error 関数を実行すると "5"が返されました。 現在、これについて調査中ですが、原因が何か分かりますか? SSL のやりとりに問題がありますでしょうか? SSL のやりとりは、 「ネットワークプログラミングの基礎知識−SSL でアクセスしてみよう」の C言語のソースの「/* ここからが SSL */」以下と同様です。 (検証中のため、「SSL でアクセスしてみよう」と同じサイトにアクセスして、結果を得ようとしております) 何卒よろしくお願いします。 |
>>2896 あきゆき 先程の書込みで不足な情報を追加します。 SSL_get_error で返される値を記載します。 1.SSL_CTX_new(SSLv2_client_method()) →SSL_connect[返り値"0"]、SSL_get_error[返り値"6"] 2.SSL_CTX_new(SSLv3_client_method()) →SSL_connect[返り値"0"]、SSL_get_error[返り値"5"] 3.SSL_CTX_new(SSLv23_client_method()) →SSL_connect[返り値"0"]、SSL_get_error[返り値"5"] よろしくお願いします。 |
>>2897 あきゆき お手数をおかけしました。 「Proxy サーバ経由の SSL 通信」を行うことが出来ました。 Proxy サーバ経由で HTTPS サイトから下記の応答が返されました。 "You have successfully connected using SSL (SSLv2)." 先程の SSL_connect のエラー[返り値"0"]の原因は、 "CONNECT 〜"を送信後の Proxy からの応答待ちの個所でした。 ご迷惑をお掛けして申し訳ありませんでした。 ご返答頂きました 68user さん、誠にありがとうございました。 今後ともよろしくお願いします。 |
お世話になっています。場違いな質問だと思いますが質問させてください。 CVSでローカルでcommitすればサーバ上で自動的にupdateするようにしたく loginfoを編集したのですがうまくいきません。 質問が場違いと言ったのは、CVSサーバがUNIX系ではなくウインドウズ環境だからです。cvsntを使ってます。 いろいろ調べた結果loginfoに以下のように書けばよいとの事なんですが wincvsにてコミットするとエラーがでてしまいます。 diary (date; cat; (sleep 2; cd /home/hoge/diary; cvs -q update -d) &) >> $CVSROOT/CVSROOT/updatelog 2>&1 エラーはnot foundとCould Not Create Child Process (error 2)です。 /home/hoge/diaryや$CVSROOT/CVSROOT/updatelogな書き方がウインドウズでは適用できないと思い d:\diaryなどに書き換えても駄目でした。 具体的には loginfo: test2 (date; cat; (sleep 2; d: cd d:\cvs_test3; cvs -q update -d) &) >> d:\cvs\CVSROOT\updatelog 2>&1 (test2がモジュール名、cvs_test3がupdate先フォルダでいいんですよね?) エラー: Executable (date; cat; (sleep 2; d: cd d:\cvs_test3; cvs -q update -d) &) >> d:\cvs\CVSROOT\updatelog 2>&1 not found Could Not Create Child Process (error 2) ご存知の方、いらっしゃいましたらご伝授よろしくお願いします。 |
自己解決(?)しました。 cvsntを利用した場合、loginfoでの自動更新はできないようです。 WINサーバの場合、cygwinを使用する方法があるみたいなので その方法を試してみる事にします。 お騒がせしました。 |
はじめまして。お力を貸してください。 業務用に、ファイルをアップロードするPerl/CGIを作りました。 エラーもなく動作はしているのですが、巨大なファイルをアップロードするときに、かなりの時間がかかります。 具体的には167MBのファイルをアップロードするのに約40分かかりました。 同じ環境で、同じファイルをFTP(FTP.exe)を使用して転送すると、5分で処理が終了しました。 CGIで時間がかかる原因が、私のソースにあるのか、 CGIのバッファが関係しているのか、それとも他に原因があるのか、 原因の切り分けが出来ずに困っています。 通常、CGIで100MBのファイルをアップロードしようとすると どれくらいの時間で処理できるのでしょうか? また、どうすればFTPと同レベルの処理速度に出来るのでしょうか? ちなみに動作環境はUNIX、線は100BASE、Perl5。 アップロードするCGIにはCGI.pmやcgi-lib.pl等のモジュールは仕様していません。 (それが原因でしょうか?) サーバのログには以下のように出ています。 (1)[14:17:57] "GET /xxx/ファイル入力用.cgi?flg=1 HTTP/1.1" 200 3413 (2)[14:57:11] "POST /xxx/アップロード用.cgi HTTP/1.1" 200 841 アップロードを行う(2)に処理が移るまでに、40分かかっています。 ということは、データのバッファリングに40分かかっているということなのでしょうか? |
友人がRS/6000でTCP/IPのパケット情報をmili sec単位で取得しそれをレポートとして出力したいんですが何か方法はありますか? |
こんにちわ いつもお世話になってます。 grepコマンドである検索文字列と、 その次の行を検索すると言うことは、 出来ないでしょうか? たとえば、 ファイルの中身が ------------------- aaa\n(改行) bbb\n(改行) ccc\n(改行) aaa\n(改行) ddd\n(改行) eee\n(改行) ------------------- と言うファイルがあったときに、 aaa\n(改行) bbb\n(改行) aaa\n(改行) ddd\n(改行) という結果を返して貰うことは出来ないでしょうか? 宜しくお願いします。 |
>>2903 tomu http://x68000.startshop.co.jp/~68user/unix/pickup?grep をご覧ください。 |
Dさん 見逃してました numオプション ^^; ありがとうございました。 |
はじめまして。 はじめてで恐縮ですが、質問させてください。 sortコマンドでカンマ区切りのdatファイルを 1番目と7番目の項目をキーに昇順、 5番目と6番目の項目をキーに降順 という並べ替えをしたいのですが、可能でしょうか? よろしくご教授願います。 |
こんにちは。 HPを開いているのですが質問があります。 BBSの方にアクセス制限をかけたい人物がいるのですが どう、打ち込めばよいかわかりません。 BBSを借りている所に質問したのですが なかなか返事が返ってこないのでこちらに頼ろうと思い 来させて頂きました。m(__)m どうぞ宜しくお願い致します。 その人物のホスト名は↓ FLA1Aae071.kmm.mesh.ad.jp なんですが、*.kmm.mesh.ad.jpと打つと 全然似てない私の方まで制限がかかってしまいました。 どう打てば宜しいのでしょうか? すいませんが教えてください。m(__)m あと、HPに描いた絵などを無断に使用する人物を つきとめる事等はできますでしょうか? |
No.2906#MATSUさん お使いの言語はPerlですか? Perlメモ http://www.din.or.jp/~ohzaki/perl.htm#SortMulti に、複数項目でのソート方法が書いてありますね。 参考になりますでしょうか。 |
こんにちは。 初めて質問させていただきます。 Solalisのtarコマンドでファイルをtarファイルにまとめようとしたのですが、 "ディレクトリ階層が深くダンプできません" というエラーメッセージが出てうまくいきません。 コマンド:tar cvf tarファイル ./対象ディレクトリ 対処方法を知っている方がいたら、教えていただけませんでしょうか? よろしくお願いします。 |
こんにちは FreeBSDで鯖を立てながら Perlで簡単なCGIを作っております 質問があるのですが BBSなどでバイナリファイルのUPLoadは どのように送ればよいのでしょうか わかる方が居りましたらお答えをお願い申し上げます |
突然ですが、 以前このページで紹介していたUNIX関連の本を教えていただけないでしょうか。 |
>>2911 take 右上にある全文検索フォームで適当な単語を入れてみましょう。 「書籍 or 本 or 出版社 or 著者 or 訳者」てな感じで。 あとは http://bookshelves.tripod.co.jp/ とか。 |