>68userさん 早速のコメントありがとうございます。 要するにアプリケーションの実装によるということですね。 (つまり、ICMP 終点到達不可メッセージを受信した際に、 ただちにコネクション確立を中止するかしないかというポリシーによるということ) ちなみにftpでもtelnetと同様でした。 |
>>4601 勉強中 > 要するにアプリケーションの実装によるということですね。 いいえ、OS の TCP スタックの実装による、だと思います。 アプリ側で対応する、つまり TCP で接続しつつ、ICMP のエラーを解析という ことが可能かどうかはやったことがないのでわかりませんが、少なくとも ftp や telnet という基本的なアプリがそういう小細工をしている可能性は低いと思います。 |
>>4602 68user > アプリ側で対応する、つまり TCP で接続しつつ、ICMP のエラーを解析という > ことが可能かどうかはやったことがないのでわかりませんが、少なくとも ftp や > telnet という基本的なアプリがそういう小細工をしている可能性は低いと思います。 ICMP のエラーを解析する必要はなかったですね。connect(2) が -1 を返したとき EHOSTUNREACH なら再接続、などとすればアプリ側で対応できます。 とはいえ、やはり ftp や telnet がそういうことをする必然性はないと思います。 |
はじめまして。ネットワークプログラムについて質問させてください。 リミテッドブロードキャスト(255.255.255.255へ)を行いたいのですが、sockaddr_in のアドレス部分に上記を入れても、何故かディレクテッドブロードキャスト(私の環境 では 192.168.1.255 )になってしまいます。正しくリミテッドブロードキャストする 方法はないでしょうか。setsockopt でブロードキャストのフラグを立てる、などは 行っています。環境は FreeBSD & gcc です。 以下、重要部分の抜粋です(エラー処理などは省いています)。 struct sockaddr_in addr; int broadcast = 1; char buf[] = "test"; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("255.255.255.255"); addr.sin_port = htons(2000); sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP ); setsockopt( sock, SOL_SOCKET, SO_BROADCAST, (char*)&broadcast, sizeof(broadcast) ); sendto( sock, buf, sizeof(buf), 0, (struct sockaddr*)&addr, sizeof(struct sockaddr) ); ごく普通のコードだと思うのですが、パケットをモニターすると、送り先アドレスが ディレクテッドブロードキャストになってしまっています。アドバイスだけでもいいので 助言いただけるとうれしいです。 |
はじめまして。sendmailコマンドについての質問です。 [FROM:]や[TO:]フィールドに、アドレスとはべつに別名を指定し実行したところ、 エラーが出力されました。 -------------<実行コマンド>---------------------- sendmail -t MIME-Version: 1.0 From: hoge株式会社<hoge@hoge.co.jp> To: huge株式会社御中<huge@huge.co.jp> Subject: 2006年05月25日の[データ] Content-Type: text/plain; charset=iso-2022-jp 2006年05月25日 14時53分現在の データをお送りいたします。 . ------------------------------------------------ TOやFROMフィールドでアドレスとはべつに別名を付けることは可能なのでしょうか? よろしくお願いします。 OS:Solaris 8 |
以下のページの「#inlcude <stdlib.h>」、スペルミスしている様です。 http://x68000.q-e-d.net/~68user/unix/pickup?getenv 正しくは「#include <stdlib.h>」かと…。 ご確認ください。 |
初めまして、soralisのC言語について質問させてください 10年以上前にsolalis v4.1で開発してもらったのが あるのですが、コンピュータ、プリンタが古くなり 最新のものに変えたいとメーカに相談した所 C言語でXVEIWが使われているので最初から作り直しと なりますといわれました 1.ほんとうに最初からの作りなおしになるのか? ソフトはあまり変えず 現在市販のPC、プリンタを使いたいだけなんですが OSは問わない 以上なんですが 業者のいいなりになるしかないのか (修正費用がかなりかかるので) 教えてもらえないでしょうか |
SPAM がウザすぎなので、 BBQ http://bbq.uso800.net/ を組み込んでみました。BBQ に引っかかると Internal Server Error になります。 書けない場合は書けねぇぞ! と書き込んでください (その際も Internal Server Error になりますが)。しばらくはログを観察するようにしますので、可能であれば 対処します。 さてうまくいきますかねぇ。 |
>>4604 COM わかりませんが、Linux で動かしてパケットを見ると、255.255.255.255 宛に 飛んでいました。 >>4605 yuukun > エラーが出力されました。 エラー内容を書きましょう。 >>4606 kojp-jp getenv と putenv 両方間違っていたので修正いたしました。 ありがとうございました。 >>4607 analog XView ならば、わたしも同様に言います。理由は以下のとおり。 - 現在は、XView はほとんど使われていない - よってほとんどの開発者には XView の知識がない - 勉強しようにも、解説本が売られていない (と思われる) - 勉強しても、その知識を他で生かせる可能性が低い > ほんとうに最初からの作りなおしになるのか? 基本的には OpenWindows 環境がある Solaris10 などでは動くはずですが、 とにかく XView も OpenWindows も時代遅れな環境ですので、修正が必要な 部分はそれなりにあると思われます。 よって XView の技術者がいる会社であれば、修正量・移行リスクを見積もる ことができ、修正作業も行えるでしょう。 http://business.rakuten.co.jp/ などでそういう会社をがんばって探すか、 作り直しを受け入れるか、です。 ちなみに、わたしが今いる環境には技術者が数十名いますが、おそらく XView がわかる人はいないと思われます。昔いた会社は UNIX を作って いたくらいなので探せばいるでしょう。ただし、いたとしても 40〜50歳の おじさんだと思われます。すでに管理職だったり、工数が見合わなかったりで、 受けたがらないでしょうね。 |
>>4609 68user ご返答ありがとうございます。Linux ではそれでうまくいくのですね。 どうしてもダメだったので、rawIP を使い、MAC アドレスを FF:FF:FF:FF:FF:FF に セットすることで解決しました。ありがとうございました。 |
>>4608 68user BBQ 導入後 24時間で、 - 成功 20件 (SPAM を SPAM と判定できたケース) - 失敗 12件 (SPAM をそのまま通してしまったケース) でした。それなりにがんばってくれたものの、毎日12件削除するのは面倒。 URLBL のチェックも追加しようかな。 |
lsコマンドを使用してファイル数を取り出そうとしています。 ファイルが存在しない場合、「No such file or directory」 を表示しないよう、位置パラメータでファイル数を求めています。 ファイルが存在する場合は、問題ないのですが、ファイルが存在 しない場合、必ず”1”となってしまいます。 どうしてなのでしょうか。また、上手くするにはどうしたらよい のでしょうか。 環境は、Solaris8、Bシェル です。 ------------------------ #!/bin/sh # if [ $# -ne 1 ] ; then exit 1 fi ymd=$1 set -- `ls *_$ymd*.csv 2>/dev/null` echo $# |
SPAMひどいですね・・・ >>4652 はじめ 位置パラメタの数は 1 となっているのは スクリプトに引数を与えている為です。 引数を変数に格納後、shift させれば OK です。 |
>>4659 zsh >引数を変数に格納後、shift させれば OK です。 shift するということには気がつきませんでした。 ありがとうございます。 再設定すれば良いのかと思い set '' set -- でやってみたのですが。 |
>位置パラメタの数は 1 となっているのは >スクリプトに引数を与えている為です。 >引数を変数に格納後、shift させれば OK です。 質問では、引数を1つにしていましたが、 引数が複数あった場合は、引数の数分、shiftしないと いけないのでしょうか。 一発で、shiftすること可能なのでしょうか。 |
はじめまして。 [全文検索機能] http://x68000.q-e-d.net/~68user/webcgi/search-1.html ↑のページの eval 法、大変参考になりました。 条件固定でループするときに、余計なものを除けるのがいいですね。 eval ってなんか最終手段っぽくて敬遠してましたが、これからは視野にいれて組んでみたいと思います。 どうもありがとうございました。 |
>>4662 はじめ > 一発で、shiftすること可能なのでしょうか。 shift $# としてください。 |
>>4665 zsh >shift $# ありがとうございます。 |
はじめまして。大変わかりやすいページで非常にためになっております。 さて、間違いがあったら掲示板で指摘してくださいとありましたので、 書かせていただきます。 すでにお気づきなら申し訳ありません。 http-client-2.c のコードで113行目の以下の部分ですが、 113: fprintf(fp, "Host: %s:%d\r\n", host, port); 最後の引数は port ではなく server.sin_port ではないでしょうか? 82〜91行目でポート番号を指定していなかったときの処理がありますが、 ここで server.sin_port を用いられているため 最後まで port は 0 のままでした。 |
こんにちわ。 Solaris7 のftp についてどなたかご存知でしたらご教授ください。 Solaris8 のような、あるユーザにはftpを出来なくするような機能「/etc/ftpd/ftpusers」があるのでしょうか。 皆様よろしくお願い致します。 |
Pthreadにて、スレッドをあらかじめ生成しておいて、 何らかのトリガーで後から起動するって、 どのようにPGすれば良いのでしょうか? よろしくお願い致します。 |
>4669 man が入ってない環境なんでしょうか? docs.sun.com に行くとドキュメント群が公開されてますよ。 http://docs.sun.com/app/docs/doc/805-3173/6j31cpluf?q=ftpusers&a=view を見る限り、solaris 7 付属の ftpd は /etc 直下の ftpusers を 参照するみたいですね。もし、無かったら作ってみましょう。 |
適用済みパッチを調べるものとして ・showrev -p ・patchadd -p の2つがあると思うのですが この2つの違い等を知っている方がいらっしゃいましたら 教えていただきたいです。(UNIX の部屋には無かったので。) patchadd -p は root 権限のみ実行できたという違いだけでしょうか? (新しいパッチでは root でなくとも実行できる。) よろしくお願いいたします。 |
>4672 ご返信が遅くなりまして申し訳ございませんでした。 ドキュメント参考に、ディレクトリ(ftpd)作成、ファイル作成して、 ftp禁止ユーザを制御できるようになりました。 しっかりドキュメントを参照しなければいけませんでした。 これからは、まずドキュメント参照を心掛けたいと思います。 hogeさん、大切なお時間ありがとうございました。 |
こんにちは。 vmstatを起動すると、「vmstat: 0551-129 knlist が失敗しました。」という エラーで情報が取得出来ません。何が考えられますでしょうか。 ちなみにOSの再起動を試みましたが、解決されませんでした。 |
>>4677 まさしくん はじめまして。 御質問のキーワードを検索すると、以下のページがヒットしました。 参考になりませんでしょうか? http://unix.derkeiler.com/Mailing-Lists/AIX-L/2003-12/0105.html |
>>4677 まさしくん 私が使用しているAIXの場合の話ですが、このエラーは「ある種のカーネル・メモリの問題」で発生する様です。 /usr/lib/boot/unix_mp ファイルのサイズがゼロとなっているはずですので、その場合には他のサーバー(同じOSの同じバージョンが良いですね)から同じファイルをコピーすることで復旧出来る様です。 残念ながら、何故このファイルのサイズがゼロになるかまでは分かりませんが、上記の通りファイルをコピーし直すか、/unix のリンクが失われている場合はリンクを張り直すと言うことで解消する様です。 |
はじめまして。 とても初歩的な質問で恐縮ですが、 RedHat Enterprise 4で、/var/log/messages 内に格納される情報が 日付 時間 ホスト名 プログラム名 メッセージ の順番で格納されているのはわかるのですが、 それぞれの最大文字数についてどなたかご教授願えませんか? よろしくお願いいたします。 |
はじめまして。 Solarisのsyslog.confの設定で 特定のログレベルのみを任意の出力ファイルに出力させたいのですが、 いろいろ調べたのですが、途方に暮れています。 Linuxのsyslog.confの設定では、 mail.=debug /ログ出力先 (↑mailのdebugのみ出力。debug以上のレベルも出力しない) という設定方法があるのですが、Solarisで同じような書き方しても 設定ファイルを読み込む時に、 「'=debug'なプライオリティはありません」と怒られてしまいます。 方法がありましたら、どなたかご教授願います。 |
>バンガードさん レスが遅くなり申し訳ございません。 /unixのリンクが無かったので、リンクをはり直したら正常に動くようになりました。 ありがとうございました。 |
psコマンドを使って、システムのcpuなどを5秒毎にログに書き込みたいのですが、どうやればいいのか検討がつきません。どなたかcシェルを利用してできる方法を教えてください。よろしくお願いします。 |
STARTTIMEM=`date +%M` こんにちわ! STARTTIMEM=`date +%M` STARTTIMES=`date +%S` STARTTIME=`expr $STARTTIMEM \* 60 + $STARTTIMES` echo $STARTTIME 以下のようなメッセージが出てしまう。 expr: 文字列に対して演算を行おうとしました。 |
最近Cygwinをはじめた初心者です。 X-Windowなるものの存在を知り、Cでウインドウを出したり直線書いたりしてプログラムを勉強していたのですが、コンパイルして実行しようとすると .... _cygtls::handle_exceptions:Error while dumping state (prbably corrupted stack) Segmentation falu (core dumped) というエラーがでます。 以前までは普通にコンパイル〜実行とできていたのですが・・・ ちなみに startxwin.sh の後に実行してみるとプログラムは動きました。 startxwin.sh などうたなくても実行する方法はありますか?またそのような設定はどうすればいいのでしょうか? |
>> 4684 この掲示板の[使い方]を見ると以下の様に記述されています。 --------------------------------------- UNIX・ネットワーク一般の質問は受け付けていません 当ページのコンテンツに対するご意見・ご指摘のみ受け付けています。 --------------------------------------- 今回の様な質問は受け付けていないはずですよ。 ひとまず、私の使用している環境(AIX 5.1)で検証した結果を提示します。 以下の通り、全く問題なく実行出来ています。 ------------------- [vanguard]> cat test.sh #!/usr/bin/sh STARTTIMEM=`date +%M` STARTTIMES=`date +%S` STARTTIME=`expr $STARTTIMEM \* 60 + $STARTTIMES` echo $STARTTIME [vanguard]> date Thu Aug 17 13:07:36 JST 2006 [vanguard]> test.sh 459 [vanguard]> ------------------- 管理者様 4678,4679も含めて問題がある様でしたら、削除いただいて結構です。 質問だけでなく、回答もこの掲示板の目的に沿っていないと思いますので、私の発言は確認なしに削除いただいて結構です。 |
>>4684 さとしくん No.4688 は No.4686 に対する回答でした。 コメントの仕方を誤っていました。 4684で質問されている5秒毎にpsコマンドを実行し、ログに書き出すのは以下のシェルでいかがでしょうか? -------------------- #!/usr/bin/sh ps > /tmp/ps.log while [ 1 ] do ps >> /tmp/ps.log sleep 5 done |
シェル素人のよしだです。 シェルから、.sqlに値の渡し方を教えてください。 シェルにてテーブル名を入力させて、.sqlにそのテーブル名を渡したいのですが どのようにしたら良いでしょうか? ○test.sh #!/bin/sh echo "テーブル名を入力してください:" read table_name sqlplus -S ユーザ名/パスワード@サービス名 @test.sql >tmp.txt ○test.sql set pagesize 100 select 品目 from テーブル名; exit; |
UNIXの全くの初心者です。失礼を承知で質問します。 スクリプトをmoreで表示すると、文字化けするものがあるのですが、どのようにすれば、見ることができるでしょうか。 ターミナルソフトの設定ではEUC表示設定にはなっています。 システムが作成したスクリプトというものは、ユーザからは見ることができないのでしょうか。 申し訳ありません。お手数ですが、文字化けしない表示方法を教えてください。 宜しくお願いします。 |
>>4691 あゆ どの様な状況になっているのか具体的な状況が見えません。 特定のスクリプトが全て文字化けするのでしょうか? それとも、そのスクリプトの一部が文字化けするのでしょうか? 「file スクリプト名」とするとどうなりますか? ターミナルソフトの設定を「S-JIS」や「JIS」にするとどうなりますか? |