>>1653 68user 様 >Net::SOCKS モジュールが参考になるかもしれません。 レスありがとうございます。 Net::SOCKS を使ったソースを参考にがんばってみたいと思います。 |
>gixs様 >smitty mkclientの時、NISサーバはホスト名で入力したのでしょうか、 >それともIPアドレスですか? この画面なのですが、AIXのバージョンが4.2.1の為に smitty mkclientで表示される画面が、 「* NIS クライアントを開始する時期 両方」 しか、表示されないのです >ypcat passwdが応答の無い時、 >ping [NISサーバのホスト名] >の応答はあるのでしょうか? 試して見たのですが、応答ありませんでした。 ># 「わかりづらい」なら、この誤変換は出ないと思います タイプミスで「わかりずらい」と打っていました。^^; |
はじめまして。 kaoriと申します。 Perl言語を勉強中です。 非常に参考になる情報をありがとうございます。 いつも感心しながら参考に勉強させてもらっています。 どうしてもわからないので教えてください。 Socketの使い方はなんとなく判ったのですが、IPv6のSocketはどういうふうに すればよいのでしょうか? Socket6っていうのをインストールしてみましたが、よくわかりません。。 私の環境は、FreeBSD-RELEASE4.1に、Perl5です。 こんな感じで作っていて、IPv4ではちゃんと動作しています。 $port = getservbyname($port_no,'tcp') || $port_no; $socket = IO::Socket::INET->new(PeerAddr => 127.0.0.1, PeerPort => 80, Proto => 'tcp', ); ご助言、よろしくお願いいたします。 |
>>1659 kaori - IPv6 環境が構築してあるか。ping6 コマンドを使って IPv6 で反応が返ってくるか (localhost 宛でもよい)。 - perl が IPv6 に対応しているかどうか。perl-5.005_03 なら多分 無理。5.6 か 5.7 で対応したかもしれません。Socket6 というのを 使えば 5.005_03 でもいけるのかもしれませんが、僕は試したことが ありません。 それをクリアすれば、少しの例外を除いて基本的には書き方は同じです (そうしないとソースレベルでの互換性が全くなくなるので)。例外と いうのは gethostbyname の代わりに getaddrinfo を使うとか。 とりあえず perldoc Socket6 してみてください。サンプルの ひとつでも載っているのではないでしょうか。 |
>>1660 68user > 少しの例外を除いて基本的には書き方は同じです (そうしないと > ソースレベルでの互換性が全くなくなるので)。例外というのは > gethostbyname の代わりに getaddrinfo を使うとか。 あー激しく不正確だなぁ。gethostbyaddr で IPv6 なプログラムは 書けます。でも、AF_INET を AF_INET6 にしないといけないとか、 struct sockaddr_in を struct sockaddr_in6 にするだとか、 ソースレベルでの書き換えが必要になります。しかもそのように 書き換えると IPv4 では動きません。 そりゃまずいというわけで、IPv4 でも IPv6 でも同じ書き方が できるような新しいライブラリが追加されました。getaddrinfo という関数や AF_UNSPEC というアドレスファミリ (AF_INET とか AF_INET6 とかを指定する必要がない) などなど。 というわけで、IPv6 only のプログラムは簡単に書けますが、 書いちゃいけません。IPv4/v6 両方で動くようなプログラムを 作るべきです。 あと、FreeBSD 4.1-RELEASE のデフォルト状態なら IPv6 対応の はずですね。/etc/inetd.conf の #echo stream tcp6 nowait root internal あたりを有効にして inetd を再起動して、それとお話しする クライアントを書いてみるといいでしょう。 以上、IPv6 アプリを書いたことのない者 (IPv6 を使ったことさえ ない) のたわごとでした。 |
しつこくて失礼。perl5.005_03 に Socket6 モジュールを入れてみました。 >>1660 68user > とりあえず perldoc Socket6 してみてください。サンプルの > ひとつでも載っているのではないでしょうか。 ばっちり載ってますね。これをちょいといじって % netstat -a | grep tcp6 | grep echo tcp6 0 0 *.echo *.* LISTEN なサーバにつなげようとしたら、 Can't load '/home/68user/p5-module/i386-freebsd/auto/Socket6/Socket6.so' for module Socket6: /home/68user/p5-module/i386-freebsd/auto/Socket6/Socket6.so: Undefined symbol "in6addr_any" at /usr/local/lib/perl5/5.00503/i386-freebsd/DynaLoader.pm line 169. だそうで。原因究明はまた後日…と言いたいところだけれど、 こりゃ僕のレベルではいかんともしがたいですな。 |
あーしつこい。でも初 IPv6 体験の記念に (やってることは しょぼいなぁ)。 4.1-RELEASE あたりなら、telnet も IPv6 ready なので、 % telnet ::1 echo で IPv6 で localhost の echo サーバとお話できます。 netstat で tcp6 なコネクションが張られていること、 tcpdump で IPv6 なデータグラムが流れていることを 確認してください。 % tcpdump -i lo0 21:56:30.055419 localhost.1206 > localhost.echo: . ack 5 win 57344 (DF) [tos 0x10] 4510 0028 0eca 4000 4006 2df4 7f00 0001 ... 21:54:41.404023 localhost.1204 > localhost.echo: S 705795707:705795707(0) win 16384 <mss 16324> 6000 0000 0018 0640 0000 0000 0000 0000 ... 先頭1バイトが4なのが IPv4、6 が IPv6 です。 |
> この画面なのですが、AIXのバージョンが4.2.1の為に > smitty mkclientで表示される画面が、 > 「* NIS クライアントを開始する時期両方」 > しか、表示されないのです 確認しました。 となると、ブロードキャストでNISサーバを見つけるはずですね。 > >ypcat passwdが応答の無い時、 > >ping [NISサーバのホスト名] > >の応答はあるのでしょうか? > 試して見たのですが、応答ありませんでした。 ローカルの/etc/hostsにNISサーバのエントリがあっても、応答無しですか? あまり引き延ばして、却って失望が大きくなってしまうのが辛いので、 状況をまとめます。 /etc/hostsにNISサーバのエントリがあるとして、 1. ping [NISサーバのホスト名]が応答なし 少しだけ脈あり。名前解決の順序がおかしいようです。 FAQの1.800(http://www.landfield.com/faqs/aix-faq/part3/) にありますが、環境変数NSORDERがあるとか?(可能性は低いですが) 2. ping [NISサーバのホスト名]が応答あり 今さら、この結論も気が引けますが、 ypwhich [NISサーバのIPアドレス] でうまくいくなら、それで結果オーライにしてしまってよいのではないでしょうか。 |
kaoriです。 ご丁寧な回答ありがとうございました! IPv6の環境は整っています(OCNの実験に参加しています)ので、 教えて頂いたのを参考に色々試してみます! > というわけで、IPv6 only のプログラムは簡単に書けますが、 > 書いちゃいけません。IPv4/v6 両方で動くようなプログラムを > 作るべきです。 本当にその通りですね。 アドバイスありがとうございます。 今後もよろしくお願いします! |
ちょっと便乗して試して見たのですが、 >>1660 68user > - perl が IPv6 に対応しているかどうか。perl-5.005_03 なら多分 > 無理。5.6 か 5.7 で対応したかもしれません。Socket6 というのを > 使えば 5.005_03 でもいけるのかもしれませんが、僕は試したことが > ありません。 なんか、FreeBSD の /usr/bin/perl は IPv6 に対応してない感じですね。 4-stable も 5-current(こちらは perl 5.6.0)も試しました。 perldoc Socket6 して出て来る IPv6 の daytime のサンプルを試しましたが、 socket: Protocol not supported などというエラーを返します。もちろん、inetd.conf 書き換えて、IPv6 の daytime は使えるようにしてあるのですが。一方、添付の C プログラムは うまくいくので、設定ミスではないと思うのですが。だいたい telnet ::1 13 もちゃんと反応しますし。 >>1665 kaori うちでは、localhost しか試せないのですが、kaori さんのところでは perl でもうまく行っていますか? perl 自体にも IPv6 のパッチあてないと いけないのでしょうか? とりあえず、Socket6 使って嬉しいのは IPv6/IPv4 両用に書かれたスクリプトでも動作する程度しかありませんね。うちの場合。 KAME パッチをあてて perl を make してみようとも考えましたが、 perl の開発スピードの方が早すぎるようで、パッチが追従しきれてません。 どなたか、うまくいったという方がいらっしゃったら、教えてください。 #include <stdio.h> #include <string.h> #include <err.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main(int argc, char *argv[]) { struct addrinfo hints, *res, *res0; int error; int s; const char *cause = NULL; memset(&hints, 0, sizeof(hints)); hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("localhost", "daytime", &hints, &res0); if (error) { err(1, "%s", gai_strerror(error)); } s = -1; for (res = res0; res; res = res->ai_next) { char hostname[NI_MAXHOST], servname[NI_MAXSERV]; s = socket(res->ai_family, res->ai_socktype, res->ai_protocol); if (s < 0) { cause = "socket"; continue; } if (getnameinfo(res->ai_addr, res->ai_addr->sa_len, hostname, NI_MAXHOST, servname, NI_MAXSERV, NI_NUMERICHOST | NI_NUMERICSERV) < 0 ) { err(1, "getnameinfo"); } else { printf("connecting to %s port %s...\n", hostname, servname); } if (connect(s, res->ai_addr, res->ai_addrlen) < 0) { cause = "connect"; close(s); s = -1; continue; } break; } if (s < 0) { err(1, cause); } else { char buff[256]; memset(buff, 0, sizeof(buff)); if (recv(s, buff, 256, 0) < 0) { err(1, "recv"); } printf("%s\n", buff); } freeaddrinfo(res0); return 0; } |
>>1666 rosegarden > なんか、FreeBSD の /usr/bin/perl は IPv6 に対応してない感じですね。 > 4-stable も 5-current(こちらは perl 5.6.0)も試しました。 > perldoc Socket6 して出て来る IPv6 の daytime のサンプルを試しましたが、 > socket: Protocol not supported > などというエラーを返します。 原因が分かりました。ああ、余計なポストするんじゃなかったな。 FreeBSD の /usr/bin/perl はちゃんと IPv6 対応していますね。 私の場合 ports で Socekt6 インストールしたのですが、ちゃんと動きました。 ところで、Socket6.pm 持っている人は、サンプルが次のようになっていませんか? use Socket; use Socket6; @res = getaddrinfo('hishost.com', 'daytime', AF_UNSPEC, SOCK_STREAM); $family = -1; while (scalar(@res) >= 5) { ($family, $socktype, $proto, $saddr, $canonname, @res) = @res; ($host, $port) = getnameinfo($saddr, NI_NUMERICHOST | NI_NUMERICSERV); print STDERR "Trying to connect to $host port port $port...\n"; socket(Socket_Handle, $family, $saddr, $proto) || next; (以下略) 投稿した C プログラム眺めていて気がついたのですが、 socket(Socket_Handle, $family, $saddr, $proto) || next; って socket(Socket_Handle, $family, $socktype, $proto) || next; のミスじゃありませんか? # なんで投稿した直後に気が付くんだろう。 # 私の勘違いかなぁ? 最近ぼけているし...。 ちなみに、私の場合次のようにしたら、スクリプトはうまく動きました。 環境は 4-stable + perl 5.00503 + Socket6 です。 #!/usr/bin/perl use Socket6; use Socket; @res = getaddrinfo('localhost', 'daytime', AF_UNSPEC, SOCK_STREAM); $family = -1; while(scalar(@res) >= 5) { ($family, $socktype, $proto, $saddr, $canonname, @res) = @res; ($host, $port) = getnameinfo($saddr, NI_NUMERICHOST | NI_NUMERICSERV); print STDERR "Trying to connect to $host port port $port $family...\n"; socket(Sock, $family, $socktype, $proto) || die "socket: $!"; connect(Sock, $saddr) && last; close(Sock); $family = -1; } if( $family != -1 ){ print "connected to $host port $port\n"; while( defined($line = <Sock>) ){ print "$line\n"; } close(Sock); } exit; # 穴があったら入りたいです。 |
>>1667 rosegarden そうだ。補足です。下のスクリプトですが、 > socket(Sock, $family, $socktype, $proto) || die "socket: $!"; この部分の die 云々のところは next にして > socket(Sock, $family, $socktype, $proto) || next; とすると IPv6/IPv4 の daytime クライアントになります。私の場合には 最初から、/etc/rc.conf に ipv6_enable="YES" が入っているのと、 デバッグの意味もあって、上の die を入れておいただけです。 socket の三番目の引数は SOCK_STREAM とかそういうのが入ります。 私がはまったのは、サンプルをコピー & ペーストして書き換えたものを 使っていたからです。CPAN にある Socket6 は直っているかも知れません。 (でも、ダウンロードしたのは昨日の夕方ですが。) # コピー & ペーストなんて、安直なことしたバチがあったんですね。 上のように直して、inetd.conf で IPv4 の方だけ有効にしておくと % perl daytime6.pl Trying to connect to ::1 port port 13... Trying to connect to 127.0.0.1 port port 13... connected to 127.0.0.1 port 13 Fri Jan 26 16:59:50 2001 という感じで、IPv6 が有効だと % perl daytime6.pl Trying to connect to ::1 port port 13... connected to ::1 port 13 Fri Jan 26 17:01:16 2001 になります。IPv6 見てから、IPv4 見ると言うのは、システムによっては 変わるのでしょうか? とりあえず、うちの場合は telnet も ftp もこの順番です。 # しかし、なぜ投稿してから気がつくんだろう?? # 68user 様ならびに皆様、再三のゴミ書き申し訳ありません。 |
>>1667 rosegarden > 私の場合 ports で Socekt6 インストールしたのですが、ちゃんと動きました。 うちの 4.2-STABLE だと >>1662 68user > Can't load '/home/68user/p5-module/i386-freebsd/auto/Socket6/Socket6.so' でしたが、会社の 4.1-RELEASE だとうまくいきました。うちの環境が 変だったのかもしれません。 >>1667 rosegarden > socket(Socket_Handle, $family, $saddr, $proto) || next; > って > socket(Socket_Handle, $family, $socktype, $proto) || next; > のミスじゃありませんか? む、まさにそこではまってました。それを直すと動いたのですが、 この Socket6 って変じゃないでしょうか? 以下の echo クライアントが デッドロックしてしまうようです。 #!/usr/bin/perl use Socket6; use Socket; @res = getaddrinfo('localhost', 'echo', AF_UNSPEC, SOCK_STREAM); $family = -1; while(scalar(@res) >= 5) { ($family, $socktype, $proto, $saddr, $canonname, @res) = @res; ($host, $port) = getnameinfo($saddr, NI_NUMERICHOST | NI_NUMERICSERV); print STDERR "Trying to connect to $host:$port $family...\n"; socket(Sock, $family, $socktype, $proto) || die "socket: $!"; connect(Sock, $saddr) && last; close(Sock); $family = -1; } if( $family != -1 ){ select(Sock); $|=1; select(STDOUT); print "connected to $host port $port\n"; print Sock "test!\n"; print <Sock>; close(Sock); } で、 print <Sock> の部分を $len = read(Sock,$buf,6); print "len=$len\n"; print "buf=$buf"; とかすれば動きますが、 $len = read(Sock,$buf,7); だとダメです。内部でバッファリングしちゃってるのかなぁ? >>1668 rosegarden > IPv6 見てから、IPv4 見ると言うのは、システムによっては > 変わるのでしょうか? /etc/hosts のエントリ順 (::1 と 127.0.0.1 のどちらが上にあるか) に よって変わるようです。 |
ぐぅ、あほだ。 >>1669 68user > print <Sock> そりゃ動かんわな。$buf = <Sock>; print $buf か print scalar(<Sock>) でした。失礼。 |
>>1667 rosegarden > socket(Socket_Handle, $family, $socktype, $proto) || next; > のミスじゃありませんか? で、これどうしましょうかね。 Hajimu UMEMOTO <ume@FreeBSD.org> 宛に投げればよきにはからってくれるでしょうけど、僕が連絡しても いいですし、rosegarden さんが既に連絡済みであればそういうことで。 |
すみません、ちょっと横になっていました。 >>1671 68user > Hajimu UMEMOTO <ume@FreeBSD.org> > 宛に投げればよきにはからってくれるでしょうけど、 68user さんお願いできますか? ちょっと今はメール出せません。 それから ::1 と 217.0.0.1 について有難うございました。 |
>>1671 68user サンプルのミスといえば、 >>1666 rosegarden の C プログラムは man 3 getaddrinfo と man 3 getnameinfo して表示されるサンプルをほとんど借用して書いたのですが、 man 3 getaddrinfo の方のサンプルも些細なところで typo があります。 if (error) { err1(1, "%s", gai_strerror(error)); /*NOTREACHED*/ } err1 は err の typo ですね。 まぁ、こちらはリンクエラーになるので、はまることは絶対にないかと 思いますが。 # こちらも cvsup したソース見たのですが、直っていないですね。 # cvsup したのは昨日の晩ですが。 |
I'll fix the typos around samples in getaddrinfo.3 and Socket6.pm. Thanks! |
be sure to report typos to either *BSD bug database, or KAME bug database. otherwise they won't get fixed. |
>>1674 ume ume さん。お忙しいのにお手間かけてすみませんでした。 今後、気づいた点があれば、きちんと send-pr しますので、 >>1675 itojun itojun さん。お忙しいのに、すみません。 これより www.kame.net に行って send-pr しますので、 今晩中にしますので、お時間ください。 それから、なにやら、ぶしつけな書き方で済みませんでした。 |
>>1675 itojun >>1676 rosegarden http://www.kame.net/dev/cvsweb.cgi/kame/kame/kame/libinet6/getaddrinfo.3 ああ、大変申し訳ございません。 以後、確認がとれ次第即時に send-pr 致します。 |
>>1672 rosegarden ume さんにメール出しておきました、と書こうと思ったら 既に解決している…。 せっかくなので IPv6 ネタでも書きますか。その前にだいぶ 勉強が必要ですけれども。 http://playground.iijlab.net/iij.news/ http://www.running-dog.net/bsd/40/ipv6.html |
>>1678 68user > せっかくなので IPv6 ネタでも書きますか。その前にだいぶ > 勉強が必要ですけれども。 是非ともお願いします。これを機会に私も IPv6 について勉強したいと 思っています。 |
はじめまして。知人の会社の話なんですが、自社サーバ(NT)で HPを公開しています。先日、日本語ドメインを多数取得し、 それらで今公開しているページにアクセスできるようにしたいそうです。 そこで、以下の質問なんですが... 1.複数のドメイン名で同じトップページにアクセスさせたい場合、 ネームサーバ登録時に同じIPを設定することでよいのでしょうか? 2.トップページ以の場合は(例えば、"www.***.com"と "www.$$$.co.jp/***/***.htm"で同じページにアクセスさせたい場合) どうすればよいのでしょうか?専門の業者に頼むべきでしょうか? こちらの掲示板では、場違いな質問ですが、どなたか教えてください。 ここで聞いたほうがいいよ、という情報でもかまいません。 よろしくお願いします。 |
>>1680 kikizo > 1.複数のドメイン名で...同じIPを設定することでよいのでしょうか? そうです。 > 2.トップページ以の場合は... バーチャルホストの設定次第でいかようにもできます。どんな web サーバを使っているかは知りませんが、解説本を数冊買って 熟読すれば可能でしょう。時間と手間を惜しむなら業者に頼む べきですね。 それはそれとして、一番気になるのは > 日本語ドメインを多数取得し、それらで今公開しているページに > アクセスできるようにしたい これって現状で可能なんですか? 現在日本語ドメインのサービス を行っている DNS は存在しないと認識しているのですが。 # http://www.onamae.com を見ても何も書いてないし。 あと、jpnic/apnic/internic で使用する文字コードが全然違う という問題があるそうですが (詳しくは知らない)、ここらへん どうなっているんでしょうね。 |
>>1681 68user 68userさん、ありがとうございました。 おっしゃるとおり、日本語ドメインは、今は登録だけで使えませんよね。 いつから実際に運用されるのか全く未定だし、最悪何らかのトラブルで 登録したドメインが使えない可能性もあると、某登録代行業者のページに 書いてありました。 そんなわけで、時間はたっぷりありそうなので、ひとつ勉強してみます。 |
誰か知識のある方、教えてください! 幾つかのサーバーに2つのC言語プログラムを使う権限を与えて 共有ファイルを変更更新させるようなプログラムの例があれば 教えてください。それとそれと、その時サーバーにコンパイラを 持たせなくてもプログラムを動かすことはできるのですか? 何もかもわかりません。先輩方、どうかこんな低レベルな者に ご指導くださいますよう、よろしくお願い申し上げます。(ミミシロ) |
はじめましてメールについてお聞きしたことがあります。 mailxやsendmailで送信したメールでアドレスが存在しなかった場合 そのメール自身はどうなるのでしょうか? やっぱりサーバーの送信ユーザーに返信されるのでしょうか? よろしくお願いします。 |
68user さん、お忙しいみたいですね。 >>1684 moe > mailxやsendmailで送信したメールでアドレスが存在しなかった場合 > そのメール自身はどうなるのでしょうか? > やっぱりサーバーの送信ユーザーに返信されるのでしょうか? 私は MTA としては sendmail 以外には使ったことはありません。その場合に 話は限定されますが、基本的にユーザに返送されます。 ただし、リトライ設定がしてある場合には(デフォルトは 7 日)は再送を試みます。 ただし、それは、宛先ホストが DNS などにより存在が確認されている場合の話です。 もしも、DNS で引けないと即時に返送されたと思います。 一口に「アドレスが存在しなかった」といっても (1) ドメイン部が存在しない。MX フィールドの検索の失敗 (2) ユーザが存在しない。 (3) 存在しているが、サーバが落ちていて、メールが受け取れない などといった状況があります。 問題は、差し出したユーザが存在しない場合で、これはちょっと分かりません。 それから、そういうメールがどうなるかですが、 8 年くらい前に、内部ネットワークの変更のあったドメインにメールを出した ことがあり、宛先ドメインのポストマスターから 「ちゃんと宛先を確認してください」というメッセージとともに 私の送ったメールが添付されていたことがあります。 ポストマスターが手動でメールを返送して来たことになります。 (私のメールの本文は、テキストエディタのファイル挿入かなんかでそ のメールにインクルードされていた形跡があったので、そう判断したのです。) ちなみに、うちのネットワークの場合、エラーを起こしたメールはヘッダーだけ 私に全部到着するようになっています。単純に postmaster 宛のメールを 自分に forward しているだけですが...。 >>1683 mimishiro > 幾つかのサーバーに2つのC言語プログラムを使う権限を与えて > 共有ファイルを変更更新させるようなプログラムの例があれば > 教えてください。 次の情報が必要かと思います。 (1) サーバのオペレーティングシステム。最低でも NT か UNIX かは要ります。 以下は UNIX だとします。NT だと、少なくとも私は分かりません。 (2) 「共有ファイル」というのは何で実現していますか? nfs でしょうか? (3) 「2つのC言語プログラム」というのは、簡単にどんな役割や機能を もっているのでしょうか? (4) 「変更更新」の意味をもうすこし詳しく。すべてのサーバに同じ 内容のファイルを共有させるように「変更更新」させるのか? あるいは、サーバごとに違う情報を持たせるように「変更更新」して、 すべてのサーバに共有させるようにするのか? > その時サーバーにコンパイラを 持たせなくてもプログラムを > 動かすことはできるのですか? コンパイル済なら、動かすことはできます。ところがサーバごとに アーキテクチャが違う場合には、持たせる必要はなくても アーキテクチャごとに対応するコンパイラでコンパイルしておく必要は あります。アーキテクチャが同じでも FreeBSD/i386 と Linux/i386 では 違う実行ファイル形式になるので、それも考慮に入れる必要があります。 コンパイラがいらなくても、ダイナミックリンクライブラリを使うような ケースだとライブラリ自体をインストールする必要があります。 > 何もかもわかりません。 ご謙遜だと思われますが、上記のようなケースが考えられるので、 まったく何もかも分からないのでは、答えを得られても手も足もでないかも しれません。運良く、目的にあったプログラムを見つけられても 最低限 ./configure 一発で済むようなソフトのビルドをした経験が ないと実際の運用は難しいように思われます。サーバの編成次第では 実行ファイルをコピーしてすまないかもしれないからです。 # まあ、前座の回答と言うことで、とりあえずこれで間に合わせてください。 |
>>1685 rosegarden うーん、SMTP サーバの管理をしたことはありませんが、 (1) DNS サーバにアクセスできない (2) DNS サーバにアクセスした結果、存在しないドメイン/ホストで あることがわかった (名前解決できない) (3) DNS サーバにアクセスした結果、存在するドメイン/ホストだが (名前解決できた) 、相手先/中継先の SMTP サーバに接続できない (4) 相手先/中継先の SMTP サーバに接続したが、ユーザが存在しない 1,3 は再送し、2,4 は即座にエラーメールが返ってくる、かなぁと 経験上思っているのですが。試したわけではありません。 # とはいえ、やっぱり sendmail だから、こんなに単純な話では # ないだろうなと想像してたりします。 > 問題は、差し出したユーザが存在しない場合で、これは > ちょっと分かりません。 相手先の SMTP サーバから From: Mail Delivery Subsystem <MAILER-DAEMON> なメールが返ってくると思います。FreeBSD+sendmail なら /usr/libexec/sendmail/sendmail が返しているようです。 自分が SMTP サーバに指定しているユーザ宛のメールなら、 SMTP で RECT TO:<unknown@bar.com> とする時点でエラーになるので、メーラー自家製のエラー メールもどきが返ってくるか、あるいはメーラーがエラー メッセージを出して終わりかもしれません。 |
Motifの質問なのですが,誰か分かる方がいればお願いします. XtPopupでPopup画面を何個も画面表示している状態です,その 画面のOKボタンをクリックすると,画面が消去するする様にした いので,XtPopdown(Widget)関数を使いたいのですが,複数画面 なので そのWidgetをゲットしてくれる関数は無いでしょうか. 知っていたら教えてください. |
UNIX(ソラリス)において、Cシェルまたはbシェルで一般ファイルのNULL文字を1バイト英数字(スペースを含む)に置き換えることができるのでしょうか?だれか知っていたらおしえてください。※1バイト英数字(スペースを含む)をNULL文字に置き換えることはできるとおもうのですが・・・ |
はじめまして。x68030にNetBSDを入れようと思っているのですが、どうも調子が悪いです、どなたか上手くいった方いましたら教えて下さい。 今、NetBSD1.4.3でチャレンジしているのですが、boot後、MMUのエラーが出てハングします。MPUはMC68030に載せ変えてるのに何故??。 NetBSD本のCDだと、インストール後、設定してるといきなりハングするんです。まいったなぁ。 http://circle.excite.co.jp/club.asp?cid=q0800068 |
はじめまして、最近unixを始めたおじさんです。 わかる方おりましたら教えてください。 あるディレクトリーの下のファイルを定期的に削除したい しかし、特定のディレクトリー(etc.binなど)の下はさわりたくない。又 ディレクトリー名は随時作られるために固定できない |
はじめまして。 Windowsでネットワークプログラミングを行っていますが、bzero関数がWindowsでは無いみたいです。 代わりになるようなものが、見当たらないのですが、この関数はどういう働きをするのですか? |
bzeroの他に、bcopyも判りません。 こちらも教えてください。 |
>>1687 Q駒田 > Motifの質問なのですが うーん、すいませんがわかりませんです。 >>1688 eio > 一般ファイルのNULL文字を1バイト英数字(スペースを含む)に置 > き換えることができるのでしょうか? tr '\0' X でよござんすか? >>1689 ふにふに > x68030にNetBSDを入れようと思っているのですが あぁ…、68user's page なのに全然 X68000 じゃないページに ようこそ。ですが、残念ながら全くわかりません。 >>1690 おじさん > 削除したい http://X68000.startshop.co.jp/~68user/unix/pickup?rm http://X68000.startshop.co.jp/~68user/unix/pickup?rmdir > ディレクトリー名は随時作られるために固定できない 固定できないとはいえ、何らかの法則性があるでしょうから、 それをキーに rm -rf ディレクトリ名 などなど。ということを行うスクリプトを sh や csh や perl で組んで、 > 定期的に http://X68000.startshop.co.jp/~68user/unix/pickup?crontab で cron に登録しておけばよいです。簡単にやるなら、 0 12 * * * /bin/rm -rf /target/dir/* と書いておけば、毎日 12:00 に /target/dir/ の下にある ファイル・ディレクトリが消されます。 >>1691 紅の猫 > bzero関数がWindowsでは無いみたいです。 bzero はゼロクリアで、bcopy はコピーです。 http://www.freebsd.org/cgi/man.cgi?query=bzero&manpath=FreeBSD+4.2-RELEASE&format=html bzero, bcopy は元々 BSD 系の関数です (が SystemV 系 UNIX にも あります)。ANSI C 処理系では memset, memcpy を使います。 |
>>1693 68user ありがとうございます。 どうにか、http-client-1が動くようになりました。 |
こんばんわ。先日はどうもでした。 掲示板の改ページのとこがいまいちよく分からないのですが、 とほほラウンジの http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+199901/99010207.txt 68userさんの、スマートでよさげなので参考にしたいのですが、 「次」だけでなく「前」と、「以上 31 から 58 番目の発言です。」 みたいなの付けたいのですが、まったく分からないです。。 よかったらご教授くださいませ、、。 |
>>1695 けんす B-Cus 1999/01/27(水) 03:02:50 の形だと、 発言が 40 件あるときに start=30 とすると「次の10件」が 表示されない (41件目かどうかで判定しているから) という問題点があるので、ちょっと構成を変えて、 $start=1; $count=1; $next_page_exist = 0; # 次ページが存在するか $messages_per_page = 10; # 1ページ 10件ずつ表示 if ( $ENV{QUREY_STRING} =~ m/start=(\d+)/ ){ $start = $1; } open(IN,"data.txt"); while (<IN>){ if ( $count >= $start ){ ($name,$content) = split(/,/,$_); print "名前:$name 内容:$content<br>\n"; if ( $count == $start+$messages_per_page ){ $next_page_exist = 1; last; } } $count++; } if ( $start != 1 ){ # 1件目から表示しているときは「前のxx件」を出さない printf qq(<a href="hoge.cgi?start=%d">前の$messages_per_page件</a>), $start-$messages_per_page ? ; } if ( $next_page_exist == 1 ){ # 次ページが存在しない場合は「次のxx件」を出さない printf qq(<a href="hoge.cgi?start=%d">次の$messages_per_page件</a>), $start+$messages_per_page; } printf "以上 %d から %d 番目の発言です。\n", $start, $count-1; という感じになります。動かしていないのでバグがあるやも しれません。 あと、start=7 のときに「前の10件」が hoge.cgi?start=-3 と なりますが、これは宿題ということで。 |
私は、ネットワーク管理をやっている者ですが・・どうしても原因の分からない問題にぶつかったので、分かる方いたら教えてください。 とある、プロバイダーのMailサーバーを管理しているのですが、全国いろんな環境からサーバーにMailを取りにきます。OCN-エコ-128kで接続してくるお客さんだけが、POPを取りにくるときタイムアウトしてしまいます・・同一症状が5カ所で出ております。トラフィック上は何の問題もなく、症状が現れたのは、4日前サーバーセンターに異常が出て、同一センター内にサーバーを設置している別会社がネットワーク構成を変えてからです。 弊社Mail+DNSサーバー(同一マシーン)に使っているOSはFREE-BSD3.3 qpopper3.1.2を利用中・・。 問題の出ているCliantからTracertしても異常は無く、DNSも問題なく引けてます、WWWは問題なく好調です・・。 関係有るかは分かりませんが、OCNのその5カ所は211.***.***.***のネットワークになっています。 それ以外のネットワークのOCNでは問題は起こっておりません。 OCN側は、異常は無いと言い張っているので、原因がさっぱり分かりません・・。 どなたか、分かる方なにが考えられるか教えてください。 |
>>1697 BOSS > CliantからTracertしても異常は無く > DNSも問題なく引けてます、WWWは問題なく qpopper が IP アドレスから FQDN を逆引きしようとして、 逆引きできないか、タイムアウトしている、というのは 考えられませんか? qpopper は何かログを吐いてませんか? |
>>1696 68user ばっちりでしたー。 すばらしいっす。感謝です68userさん。 http://www.kensu.com/bin/plywood.php ごめんなさい。Perlじゃないです。 いつもここの掲示板、参考にしてますm(_ _)m > あと、start=7 のときに「前の10件」が hoge.cgi?start=-3 と > なりますが、これは宿題ということで。 あまり自信ないですけど、、 if ( $start != 1 ){ # 1件目から表示しているときは「前のxx件」を出さない の部分を if ( $start - $messages_per_page >= 1 ){ にしてみたら、いちおうできたみたいです、、 もしよかったら、正解を教えてくださいませ。 あとちょっと気づいたことなんですが、 「次へ」で見てみると、前のページの一番最後にあった発言が また最上部へでてくるのですが、これは仕様ですか?? ちゃんと次のページへきたという安心感があってべつに問題ないのですが、 いちおうきいてみました。 ではー |
>>1699 けんす ああそうか…、ログの先頭が新しい書き込みで、最後が古い 書き込みなのね。僕は、この方式に start=xx 式の管理を 組み合わせるのはまずい仕様だと思います。 例えば、現在 http://www.kensu.com/bin/plywood.php?start=30 とすると、No.64〜34 が表示されます。 しかし、今後書き込みがあると、同じ URL でも No.65〜35、 No.66〜36 とだんだんずれていきます。これでは特定の話題を 指して URL を示すことができません。 一方、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=601-700 のように、古い順から数えて 601〜700 であれば、今後 いくら発言があろうと発言内容は変わりません。 # この点を仕様として考えておられるのでしたら失礼。 > if ( $start - $messages_per_page >= 1 ){ > にしてみたら、いちおうできたみたいです これだと http://www.kensu.com/bin/plywood.php?start=10 のときに、「前」リンクが表示されません。まぁ、これを バグと取るか仕様と取るかは人によるかもしれません。 > 前のページの一番最後にあった発言がまた最上部へ > でてくるのですが、これは仕様ですか?? いえ、バグです (笑) あと、ソースを公開されておられるのは大変素晴らしいですね。 僕は php を使ったことはありませんが、概要くらいは知ることが できました。 # そして、php であっても、一つのスクリプトにまとめようとすると # 結局 perl 的な書き方になってしまうのだなぁと思いました。 |
質問です。CGIプログラムから別のCGIプログラムは実行できますか? リンクチェッカーをCGIで作ったのですが、ブラウザ上から実行できる ようにしようと思ってボタンを作ったのですが、全くだめでした。 誰か知っている人がいたらおしえてください。お願いします。 |
>>1701 TK > 質問です。CGIプログラムから別のCGIプログラムは実行できますか? 情報が何も書いてないので、できます、としか言いようがないです。 |
以前に 4-stable は不安定と言いましたが、 最近は安定していますね。少なくともうちでは安定しています。 新しいデバイスドライバ試す程度なら、大丈夫でしょう。 ただし、2/1 から 2/4 までの間のソースは ipfw にバグが あるのでその期間のソースからはビルドしない方が良いです。 |
>>1703 rosegarden > 以前に 4-stable は不安定と言いましたが、最近は安定していますね。 もう SNAPSHOT ってなくなったんでしたっけ。freebsd-stable も 流し読みなので (読まずに捨てているとも言う)、最近は恐くて cvsup できません。 |
はじめまして。 Sakiikaと申します。 長文失礼します。 このたび、UNIX_Cを触ることになってHPを参考に させていただいているのですが、ライブラリルーチンの opendirを使ったプログラムを書いたのですが、 while ((dir = readdir(dp)) != NULL ){ でコンパイラエラーが出てしまい、うまく動作しませんでした。 原因を調査したところ、 struct direct *dir; を struct dirent *dir; に変更したら動作するようになりました。 これは、UNIX環境によって、 struct directとstruct direntの2つが定義されているのでしょうか。 初歩的な質問ですが宜しくお願いします。 |
>>1704 68user >もう SNAPSHOT ってなくなったんでしたっけ。 いや、まだあります。ただここ数日ビルドに失敗していますね。 したのは jpSNAP からのログです。 >===> etc/sendmail >rm -f freebsd.cf >(cd /usr/src/etc/sendmail && \ > m4 -D_CF_DIR_=/usr/src/etc/sendmail/../../contrib/sendmail/cf/ \ > /usr/src/etc/sendmail/../../contrib/sendmail/cf/m4/cf.m4 \ > freebsd.mc ) > freebsd.cf >chmod 444 freebsd.cf >+ touch /.buildworld_done >+ tar cyf /4.2-STABLE-20010205-JPSNAP.tar.bz2 -C /usr/obj . >tar: can't exec bzip2 : No such file or directory >release releng4 ends at 2001/02/05 04:32:32 これ見ると、make buildworld は成功しているようです。ただ、 /usr/obj のパック(これは通常 make world する際には関係ありません。 jpSNAP サービス独自の処理でしょう)に失敗しているだけです。 これはメールしておきました。 >freebsd-stable も流し読みなので 最近はとくに留意する点はありません。昨年暮れと同様の方法で make world 出来ると思います。一方 -current はちょっと、devfs がデフォルトで 採用されるようになったので、devfs 関係の記事を追ってないと 辛いかも知れません。ま、辛いとは言っても、ないデバイスは rc.devfs の 中でシンボリックリンク張れば良いだけですが。 |
雪ん子と申します。 初めて質問させていただきます。 CGI初心者ですが、参考書とWEBを参考にデーターベース(検索)なるのを 作成しています。 データはCSV形式で作成しており、ある条件に合致したものを表示する ようにしています。 表示されたものにはリンクを貼りそれぞれのページを表示するように しました。 しかし、情報が更新になる度に、リンク先のページのhtmlとデータの CSVファイルの両方を更新しないといけないという二重でまになって しまいます。 そこで、直接データベースからデータを引っ張り出して、リンク先の ページを作成することは可能でしょうか。 因みに、こちらにテスト環境があります。 http://www.oitamirai.co.jp/cgi/search.html |
プロセス間で共有できるメモリの使い方を教えてください。 (システムコールshmget、shmat、shmdt以外で。) |
>>1705 Sakiik direct は dirent の typo です。こういうときは、man readdir しましょう。正しい引数の数、型、戻り値、必要な include file などの情報が書いてあります。 >>1706 rosegarden ああ、なるほど。http://www.jp.freebsd.org/snapshots/ ですね。 僕の言った snapshot は、 「stable の中で、比較的安定していた時点のものにタグを打ったもの」 という意味だったのですが、昔はそういうのがありません でしたか? (記憶違いかな…) >>1707 雪ん子 > 表示されたものにはリンクを貼りそれぞれのページを > 表示するようにしました。 テスト環境ではリンク先に飛ぶことはできないのですね。リンク先の HTML がどれだけの情報を含んでいるのか判断できないので、どういう ふうにするのが最適なのかはわかりません。 とりあえず検索時に必要なデータと、リンク先にあるデータを全て 1つの CSV に突っ込んで、検索も表示も両方とも CGI でやってみては どうですか。 # というような回答でよいのかな? >>1708 はじめ > プロセス間で共有できるメモリの使い方を教えてください。 > (システムコールshmget、shmat、shmdt以外で。) shmget、shmat、shmdt 以外に共有メモリと呼ばれるものは 存在しないと思うんですが、もしかしてあったりするんでしょうか。 |
>>1709 68user > 僕の言った snapshot は、 > 「stable の中で、比較的安定していた時点のものにタグを打ったもの」 > という意味だったのですが、 ああ、そういう意味でしたか。失礼しました。 そうなるとちょっと分かりませんです。すみません。 |
>>1708 はじめ mmap(2)は共有メモリと呼べるかもしれません(現象的には共有ファイルになりますが)。 共有するには実ファイルが必要なことと、排他制御があるわけではないので、ひとつだけが書き込み、残りプロセスは読み込み専用、という場面でしか使えないかもしれませんが。 > direct は dirent の typo です。 Unixの生き字引みたいに、ここで名前は挙げられませんが、struct directがあるUnixはあったんじゃないですか? |
>>1711 gixs >Unixの生き字引みたいに、ここで名前は挙げられませんが、 > struct directがあるUnixはあったんじゃないですか? 言われて見れば、そんな感じしますね。 ちなみに FreeBSD の sys/dir.h みたらこんなのありました。 /* * Backwards compatibility. */ #define direct dirent #define DIRSIZ(dp) _GENERIC_DIRSIZ(dp) |
FreeBSD3.2を使用していますが,ノートのPCカードのSCSIでCD−ROMを認識させたいです.カードはIODATAのPCSC−Fを使用しています. |
>>1713 nori > FreeBSD3.2を使用していますが, FreeBSD 3.2-RELEASE は以前に使っていたのですが、その IODATA のカードって新しいのでしょうか? 新しいとしたら、絶望的です。 3.2-RELEASE で PC card 類を使うには、PAO patch あてないと 無理だと思いました。もっとも、カードの抜き差しをあきらめることにして 起動時の userconfig や visualconfig 使えば、とりあえず 認識させることは出来ます。irq とか io アドレス類を指定すれば 無理矢理に使うことは場合によっては出来ます。 ただし、CD-ROM ドライブ使うごとに shutdown/boot の繰り返しになりますが。 それに、3.2-RELEASE 用の patch が今でも手に入るかどうか謎です。 都合もあるでしょうが、システム自体アップグレードするのが一番です。 3.2-RELEASE だと、fix されていないセキュリティホールも多いし、 (リリースされた後に発見された security hole のことです。) 3.2-RELEASE がでた当時の PAO patch じゃ USB デバイスの対応も そんなに進んでいません。 (それとも RELEASE independent にパッチを当てられるのかな?) もっとも、pccard のデータベースを自分で編集して使えるように することは出来るでしょうし、以前にそれで乗り切った経験もあります。 しかし、トータルで見ていまさら、3.2-RELEASE なんて使うこと自体 お勧めできません。だいたい、ports なんかもほとんど使える状態じゃないし、 ports tree を更新したとしても、upgrade kit をインストールしないと 使えません。 よほどのマニアか腕前のある人でない限り 3.2-RELEASE はお勧めできません。 # でた当時は、何もかも、画期的で、安定していて、素晴らしかったんですが、 # 時間の推移というのは恐ろしいものです。 |
>>1711 gixs > struct directがあるUnixはあったんじゃないですか? それは知りませんでした。確かに 386BSD 0.0 では direct ですが、 http://www.freebsd.org/cgi/man.cgi?query=opendir&manpath=386BSD+0.0&format=html 4.4BSD Lite2 では dirent になってますね。 http://www.freebsd.org/cgi/man.cgi?query=opendir&manpath=4.4BSD+Lite2&format=html 参考: BSD の系譜 http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree?rev=1.38 |
>Readdir ありがとうございました。 私の使用しているものでは、 struct dirent *readdir_r(DIR *dirp, struct dirent *entry); でした。 日本語のヘルプとして参考にしたものも同じく、direntでした。 調べ方が足りなかったようです。 ありがとうございました。 参考にしたページ。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/readdir.2.html |
>>1709 68user 早速の回答、ありがとうございました。 >テスト環境ではリンク先に飛ぶことはできないのですね。 私のミスでした。リンクを貼るためのソースが欠落していました。 http://www.oitamirai.co.jp/cgi/search.html >とりあえず検索時に必要なデータと、リンク先にあるデータを全て >1つの CSV に突っ込んで、検索も表示も両方とも CGIで 検索結果後のリンク先の表示体系は基本的に全て同じとし、店舗名や 住所の所のみを変更するようにしたいと考えています。 そこで、検索結果に表示されるものからのリンク先へのリンクの させ方と言うか表示をさせる時のCGI(引数?)がよく分かりません。 データベースから検索結果を表示させるまでは何とか自力で出来ま したがその後の処理がうまく出来ません。 お力添えをよろしくお願いします。 |
>>1717 雪ん子 おすすめは、search.cgi が 《検索結果》 3 件検索しました <a href="pickup.cgi?shopid=1>●1号店</a><br> <a href="pickup.cgi?shopid=3>●3号店</a><br> <a href="pickup.cgi?shopid=11>●11号店</a><br> というような出力をして、pickup.cgi 側は QUERY_STRING を 解析し、shopid を取得する。それに従って CSV から該当する 行を抽出し、それを出力する、というものです。 |
始めまして ちょっと質問して良いでしょうか? perlでtime()等が有りますが、これだとコンマ何秒の数値が取得できないですよね? 相対的な速度を計算したいんですが何かいいモジュールが有りましたら教えてください 検索エンジン等色々探して見たんですが見つかりませんでした |
>>1719 hiroshi 試してませんが Time::HiRes というのがそれっぽいです。 http://www.cpan.org/modules/by-module/Time/ http://www.engelschall.com/ar/perldoc/pages/module/Time::HiRes.html (*1) > 検索エンジン等色々探して見たんですが見つかりませんでした http://www.google.com/ で「perl time usec」で調べると 一番目に *1 のサイトが引っかかりました。 |
あ、即レスすみません ちょっとキーが思い当たらなかったですね perl time 時間関数 なんてやってたんですけど さっそく組み込んで見ます それでは今後ともよろしくお願いします |
($seconds, $microseconds) = gettimeofday; この部分がそうみたいですね 今ちょっと試してます |
私は細かい字が見えないのでUNIXを使うときに困っています. ウィンドウズは簡単にフォントの大きさを変えられますがUNIXでフォントの大きさを変える方法がわかりません.xterm,ktermにフォントのオプションがあるようですが,どのフォントが適しているかわかりません. 単に大きくなればよいです.全体的に大きくなる簡単な方法はないでしょうか? NETSCAPE(3.x)は設定するところがありますが,私の場合アルファベットが小さくてなぜか真っ黒になっていて見えませんどうしてでしょうか? |
あと,Xウィンドウをインストールして立ち上げても~/に.XdefaultsなどのXの設定ファイルがありません.どこにあるのでしょうか? NETSCAPEのアルファベットが小さいのは解消されました.しかし,リンク部分などが真っ黒に塗られているのは解消できません. |
xterm,ktermのフォントの大きさを変えることができました. またわからないことがでてきたのですが,cshからtcshにログイン時に変えたいのですがなんかコマンドがあった気がします.忘れてしまいました. |
>>1718 68user 68userが言われるようにしたところ、受け側のCGIの QUERY_STRING で 渡った項目を取得することが出来ました。 あとは、受け取った項目をもとに検索表示する機能を作成したいと思います。 ありがとうございました。 |
>>1725 のり > xterm,ktermのフォントの大きさを変えることができました. 自己解決したとしても、掲示板に書き込んだ以上は 何をどうしたらうまくいったかを簡単に書きましょう。 > cshからtcshにログイン時に変えたいのですがなんかコマンドが > あった気がします.忘れてしまいました. passwd -e や chsh など。OS によって違います。 |
>> xterm,ktermのフォントの大きさを変えることができました. > 自己解決したとしても、掲示板に書き込んだ以上は > 何をどうしたらうまくいったかを簡単に書きましょう。 のり氏ではないですが。 単にコントロールキー+右クリックに気づいただけでしょう。 # 論点が掲示版での礼儀作法なら、部外者なのでノーコメント。 |
始めまして。 earthlinkのFTPツールで問題が発生したため、やむなくホームページ用データのアップロードをDOSプロンプトで行うことにしましたが、mput の確認を はずす方法がわからなくて困っていました。 Yahoo!で検索したところこちらのマニュアルを見る事ができたので 大変助かりました。どうもありがとうございました。 クロ |
はじめまして。 ソケット通信についての質問ですが、 クライアントとサーバの間の回線が何らかの障害によって切れた 場合、それを知る方法を教えてください。 会社ではポート情報を取得すればいいと言われたのですが よろしくお願いします |
68userさん,他の皆さん,こんばんは。 さて,ローカルでメーリングリストの過去ログを閲覧するための便利なツールはないでしょうか。 今はメーラ(Becky)に取り込むことを考えていて,展開・取込スクリプトも完成したのですが,まだ本番の作業に移っていません。 この方式での閲覧には難点が幾つかあって, (1) 1,000メール程度ごとに分割しなければ表示が遅くなるので,スレッドがつながらないことがままある。 (2) Plain Textで保管されるのでディスク容量が圧迫される。 (3) メモリが少ないことも影響してか,はたまたWindows上でのtar操作だからか,ログアーカイブの展開・取込に異常に時間がかかる。(これが本番の作業に至っていない理由。) 理想を言えば,あらかじめインデックスを作成しておき,閲覧分だけ逐次展開するツールがあれば便利なのですが,あるのでしょうか。Windows使いなので,Windows(含DOSプロンプト)か,cygwinか,perl・ruby等で動作することが条件です。ローカルhttpサーバを立てることも可能です。 情報調査力の足りない私にどんなことでもご教示いただけるなら幸いです。 |
お世話になります。 uptimeをcronで動かしてマシン負荷を記録するスクリプトを作りました。 ところが生成されたログの起動時刻が同じ時間になってしまうという 状態がみつかりました。 ログ生成スクリプトの該当部分(bashスクリプト) export LOAD=`uptime` 〜処理〜 echo $LOAD >> $LOG ← ログファイル 生成されたログの一部 12:59am up 11:36, 1 user, load average: 0.00, 0.00, 0.00 1:00am up 11:37, 1 user, load average: 0.00, 0.00, 0.00 1:00am up 11:38, 1 user, load average: 0.00, 0.00, 0.00 1:02am up 11:39, 1 user, load average: 0.00, 0.00, 0.00 これは1秒未満の実行タイミングの誤差から来ているのでしょうか? もしそれが原因ならば、起動時に数秒waitを掛けてからuptimeを実行 することでこの現象を回避できるでしょうか? cronは毎分実行にしていますが、毎回起こるのではなく1日の内1〜2 度程度、多分負荷の掛かっている時刻の0分に記録されているようです。 ぜひご意見をお聞かせください。 |
>>1731 CZ > さて,ローカルでメーリングリストの過去ログを > 閲覧するための便利なツールはないでしょうか。 有名どころでは mhonarc がありますね。こんなの。 http://his.luky.org/ML/linux-users.5/msg05835.html ただ、個人的にはあのインタフェースは大嫌いなので、mhonarc を 使うのなら自作します。前準備としては - 各メールの Subject、From、Date、Message-Id、In-Reply-To を拾い、DB 化 - Date 順 (あるいは X-Sequence 順) に In-Reply-To がないメールはツリーの起点メール In-Reply-To があるメールは他のメールの子 として、ツリー構造を作成 (1ツリー=1ファイルにする。遅いかな?) - Date 順 (あるいは X-Sequence 順) で、月ごと (100通単位) のツリーの起点 一覧をリストアップ とし、閲覧時に CGI で - 指定された月 (指定された 100通) のツリーの起点一覧を表示しつつ、 対応するツリー表示 てなところでしょうか。 # って、自分で作る方法を聞いておられるのではないような気もしますが。 出来合いのものを使うなら Java House のが好きですが、 http://java-house.etl.go.jp/ml/archive/j-h-b/037476.html これって配布されてるものなんでしょうか。 > tar操作だからか,ログアーカイブの展開・取込に異常に時間がかかる。 tar は、先頭のインデックスを見て、目的のファイルが何バイト目から 始まるかを知ることができません (違ったっけ) ので、ランダムアクセス には向きません。圧縮しないなら、100通単位でディレクトリを掘って 1メール=1ファイルにしておく方が案外速かったりするかもしれません。 >>1732 すな > uptimeをcronで動かしてマシン負荷を記録するスクリプトを作りました。 > ところが生成されたログの起動時刻が同じ時間になってしまうという > 状態がみつかりました。 とりあえず date で秒単位まで記録して、何秒に実行されているか 調べてみてはどうですか。cron は、0秒きっかりに実行してくれる 保証がなく、結構ばらつきがあるのかもしれません。 で、もし重くて遅れがでてしまうなら、それはそれで仕方がない のかもしれません。 >>1730 purine > クライアントとサーバの間の回線が何らかの障害によって切れた > 場合、それを知る方法を教えてください。 物理的な切断については http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1299-1302 てのがありますけど、一般的には http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.8 ですね。 |
> とりあえず date で秒単位まで記録して 確かにそのとおりですね。 で、早速そのようにして観察した所1時間もしないうちに、やはり前 後1秒程度の誤差が確認されました。 +1秒の時はいいのですが、-1秒の時は「xx:59:59」などとなってしま いますので、負荷が高い時を考えて5秒程度 sleep をかます事で対 処してみます。 ありがとうございました。 cronは結構誤差があるものなのですね。 今後cronを使うときの参考になりました。 関係ない話題ですが 午前0時と正午の表記は 00:00pm という表 記が正しいと思っていましたが、uptimeの出力では、12:00am と 12:00pm と表示されるのですね。 |
>>1733 68userさん お返事ありがとうございます。 > 出来合いのものを使うなら Java House のが好きですが、 > http://java-house.etl.go.jp/ml/archive/j-h-b/037476.html > これって配布されてるものなんでしょうか。 私もなかなか閲覧しやすいと思います。「Underconstruction」なのが残念ですが。 > tar は、先頭のインデックスを見て、目的のファイルが何バイト目から > 始まるかを知ることができません (違ったっけ) ので、ランダムアクセス > には向きません。圧縮しないなら、100通単位でディレクトリを掘って > 1メール=1ファイルにしておく方が案外速かったりするかもしれません。 そうですか。SEGA BBS 過去ログ<http://x68000.startshop.co.jp/~68user/index-segabbs.html>が「データは圧縮して保管しており、リクエストがあるたびに CGI で随時展開して」いることを覚えていたので,圧縮して随時展開という手法に期待をおいていたりしました。 今は他のことにかかりきりなので,できあいのものを探していたのですが,設計の考え方は参考になりました。そのうち時間があればログをメーラに取り込んで,そのうちさらに時間があれば自作も検討します。メーラのプラグインとして作成する手もありますが,いずれにせよ今は無理です。 ところで,今さっき「tar」で全文検索したときに発見したのですが,結果画面でNo.531だけが正常に表示されませんでした。ご報告まで。 |
テープにbackupしたデータを、復元させたいのですが コマンドの打ち方がわかりません。 教えて下さい。 UNIX若葉マークです。 |
68userさんお返事ありがとうございます。参考になりました。 |
ソケット通信でマルチクライアントサーバを作っているのですが お手本にできるソースってどこかにありませんか? プログラミング初心者ですが、要求がかなり厳しいので困ってます。 |
>>1735 CZ > 「Underconstruction」なのが残念ですが。 ってどこに書いてありました? > 結果画面でNo.531だけが正常に表示されませんでした。 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=531 のことでしたら、あれで正しい表示です。CZ さんが見られたときは 変な表示になってましたか? >>1736 SASA > テープにbackupしたデータを、復元させたいのですが > コマンドの打ち方がわかりません。 バックアップしたときにどういうコマンドを使ったのですか? mt? tar? dd? >>1738 purine > ソケット通信でマルチクライアントサーバを作っているのですが > お手本にできるソースってどこかにありませんか? まずは http://X68000.startshop.co.jp/~68user/net/ を見て、どこが足りないのか書きましょう。 # …についてもっと詳しく書いてあるソースがほしい、perl # じゃなくて C 言語のソースがほしい、などなど。でも # OS のソース以外のお手本は知らないなぁ。 >>1734 すな > で、早速そのようにして観察した所1時間もしないうちに、 > やはり前後1秒程度の誤差が確認されました。 ほうほう、cron が1秒早く起動されましたか。結構いいかげん なんですかね。お使いの OS は何でしょうか? |
お世話になっておりますpurineです。 C言語で書かれたソケット通信によるマルチクライアントサーバの お手本のソースを見たいのでご存知でしたら教えていただけませんか お手本だけじゃなくC言語のソケット通信に使う関数について書かれたページなどもありましたらよろしくお願いします |
purineさん> 職場の同僚がマルチクライアントサーバを作る時に調べていてみつけた便利そうなサイトへのリンク集だそうです。 http://www.geocities.co.jp/SiliconValley-Oakland/6682/link/LinksForWork_Edu01.html この同僚は検索サイトで探し出したそうですから あなたももっと探してみてはいかがでしょう。 |
追加です。 こちらのサイトへのリンクもあるそうです。 http://www.geocities.co.jp/SiliconValley-Oakland/6682/link_work.html |
こんばんわ、初めまして。 以前から、UNIXのページなど凄く参考にさせてもらってます。ども。。 いきなり、質問なのですが。 あやまって/usr/share/locale/ja_JP.EUCを削除してしまいました。 これを元にもどしたいのですが、どんな方法があるでしょうか。 すみませんが、よろしくお願いします。 FreeBSD 4.2-RELEASEです。 |
>>1743 なお FreeBSD 4.2-BETA では % ls -ld /usr/share/locale/ja_JP.EUC drwxr-xr-x 2 root wheel 512 Jan 8 14:18 /usr/share/locale/ja_JP.EUC/ % ls -l /usr/share/locale/ja_JP.EUC lrwxr-xr-x 1 root wheel 25 Jan 8 14:18 LC_COLLATE@ -> ../la_LN.ASCII/LC_COLLATE -rw-r--r-- 1 root wheel 5391 Jan 15 22:09 LC_CTYPE -rw-r--r-- 1 root wheel 304 Jan 8 14:18 LC_TIME です。まぁおそらく 4.2-RELEASE と内容は同じでしょう。 というわけで、src を展開しているなら、 # mkdir /usr/share/locale/ja_JP.EUC # ln -s ../la_LN.ASCII/LC_COLLATE /usr/share/locale/ja_JP.EUC/LC_COLLATE # mklocale /usr/src/share/mklocale/ja_JP.EUC.src > /usr/share/locale/ja_JP.EUC/LC_CTYPE # grep -v '^#' /usr/src/share/timedef/ja_JP.EUC.src > /usr/share/locale/ja_JP.EUC/LC_TIME です。src がなければ http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/ から拾ってきてください。 うちでは # cd /usr/src/share/mklocale # make すると、/obj/usr/src/share/mklocale/ja_JP.EUC.out が出力されますが、 この方法で locale/ja_JP.EUC だけインストールするのはどうやれば いいんだろう? もちろん CD-ROM があれば、mount して、 # cd / # cat /cdrom/bin/bin.?? | tar zxvfp - usr/share/locale/ja_JP.EUC/\* でも OK です。 cvsweb を見ていて気がついたのですが、current では、LC_MONETARY、 LC_NUMERIC を設定する http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/monetdef/ http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/numericdef/ てなのができたようですね。 |
過去ログみたら、マルチポストについての指摘が(^^; すみません、マルチポストです。 www.linux.co.jp FreeBSDで質問出来るような場所が見つからず linux板に書き込んでしまいましたが、 68userさんのサイトを思い出し、投稿させて頂きました。 linux.co.jpのほうはレスしてもうらうと悪いので 解決したと書いておきましたが、実はまだです。(^^; 反省と謝罪までに、、、、でわでわ、すみません。 下記のほうよろしくお願いします。 |
>1744 68userさん ありがとうございます。 srcからうまくいきました。 locale一つでも、色々方法があるみたいですね、、 まだ知識が追いついてないですが、書いてくださった他の方法も試してみます。 でわ、解答ありがとうございました。 |
>>1744 68user > うちでは > # cd /usr/src/share/mklocale > # make > すると、/obj/usr/src/share/mklocale/ja_JP.EUC.out が出力されますが、 > この方法で locale/ja_JP.EUC だけインストールするのはどうやれば > いいんだろう? -current の make world の際のログがありましたけど、 単純にコピーでいいようですね。 > ===> share/mklocale > install -c -m 644 -o root -g wheel el_GR.ISO_8859-7.out /usr/share/locale/el_GR.ISO_8859-7/LC_CTYPE > install -c -m 644 -o root -g wheel ja_JP.EUC.out /usr/share/locale/ja_JP.EUC/LC_CTYPE > install -c -m 644 -o root -g wheel ja_JP.SJIS.out /usr/share/locale/ja_JP.SJIS/LC_CTYPE [snip] /usr/obj の下のファイルが使えるなら、多少の無駄があるけど、 make installworld するのも手です。 > cvsweb を見ていて気がついたのですが、current では、LC_MONETARY、 > LC_NUMERIC を設定する > http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/monetdef/ > http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/numericdef/ > てなのができたようですね。 これが結構間があいて commit されていたので、make world が 途中でこけるのが二三日続いたことがありました。それで覚えてます。 |
>>1739 68userさん > > 「Underconstruction」なのが残念ですが。 > ってどこに書いてありました? スレッド一覧の最下部の「Mail converted by HyperThreads v0.9.1」のリンク先です。作者のウェブサイト<http://www.etl.go.jp/~takagi/>からも参照できます。 > > 結果画面でNo.531だけが正常に表示されませんでした。 > http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=531 > のことでしたら、あれで正しい表示です。CZ さんが見られたときは > 変な表示になってましたか? Namazuの検索結果画面での表示のことです。「オペランド」等で検索してみるとお分かりになるはずです。 さて,いろいろと探していたら,<http://blade.nagaokaut.ac.jp/>で使われているbladeシステムがかなり気に入りました。bladeクローンの<http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/>が開発されています。rubyは分かるのでいいのですが,これをWindowsで動かそうとしたらかなり労力が要りそうで,ちょっと躊躇しています。 # そのうちに常時接続になることだし,そろそろ家庭内サーバを立てるか。 ## でも騒音と夏の空調とセキュリティの確保が大変そう。 ### ひょっとして常時接続になればローカルで閲覧する意味もなくなるか? 独り言を書き連ねてしまいました。 ではでは,これからもよろしくお願いします。 |