大変早いお返事本当にありがとうございます。 とても悩んでいたので助かりました。 一番上にPostgreSQL と書くべきでした。 PostgresでdblinkとForeign keyを使うのは無理でしたか。 dblink以外を使って他のデータベースのテーブルをForeign key制約 に指定する方法はないのでしょうか? 上司に無理です。と言い切るしかないかもしれません。 |
>>4201 中川 外部キーにこだわるなら、 - 定期的に他データベースからデータを取得してローカルのテーブルに入れる - 他データベースからトリガでローカルのテーブルに反映する くらいしかないのでは、とわたしは思います。 |
大変早いお返事本当にありがとうございます。 とても悩んでいたので助かりました。 一番上にPostgreSQL と書くべきでした。 PostgresでdblinkとForeign keyを使うのは無理でしたか。 dblink以外を使って他のデータベースのテーブルをForeign key制約 に指定する方法はないのでしょうか? 上司にForeign keyにdblinkは無理です。と言ったところ、 データベースA データベースB テーブルT_A テーブルT_B A B C A B C 1 0 0 2 0 0 3 0 0 データベースAのテーブルT_Aの列E_1の選択した値だけ(1だけ や 2だけ)を データベースBのテーブルT_Bの列 Aに、INSERTする。 そのときテーブルT_Bの列BにはデータベースBのテーブルT_Cの列BをINSERT し、Cにはすきな値を入れる。 という処理をする事になりました。 dblinkとビューを使ってデータベースBのテーブルT_Bに変わるものを作れば いいと思ったのですが、selectした値をそれぞれの列に入れ込む処理が見当 たらず停滞しています。 いい案がありましたらよろしくお願いします |
>>4203 中川 - 最終的に何をしたいのか - 現状のどこが問題なのか を読み取ることができません。 |
わかりづらくて申し訳ありませんでした。 やりたい処理は テーブル1の列Aには、テーブル2の列A テーブル1の列Bには、テーブル3の列B テーブル1の列Cには、その場で作った 値をINSERTさせる という処理がした いのですが、解決策が見つかりません。 副問いで、SELECTした値をINSERTさせ ようとしたのですが、SELECTは一つし か使えないようなので複数SELECTして それぞれの列にINSERTさせるというの は無理なのでしょうか。 |
>>4205 中川 INSERT INTO T1 (A, B, C) SELECT T2.A, T3.B, 'HOGE' FROM T2, T3 WHERE (T2 と T3 に関する条件) ということですか? 手元に PostgreSQL はないので確認できませんが、Oracle では一応動きました。 |
何度もありがとうございました。大変助かりました。 SQL初心者なのでこれを機にテクニカルを身に付けようと思います。 度々すみませんが、また質問です 昨日の質問なのですが、データベースの異なるテーブル にトリガーを使って外部キーをつけるという処理を 今日一日悩んだのですが、トリガーを使ったことがなく、 少しも理解できていません。 トリガーを使って異なるデータベースのテーブルに外部キ ー制約を行う方法を教えていただけないでしょうか。 |
>>4207 中川 またそこから始めるんですか? 全然 4202 から状況が変わってないように見えますが、 4203-4206 のやりとりは何だったんでしょうか。 まぁ、それはそれとして、トリガを使う案は - DB1 にテーブル T1、DB2 にテーブル T2 がある - DB1 の T1 のカラム A には、DB2 の T2 のカラム A に存在する値しか入れたくない - しかし PostgreSQL の外部キーでは、dblink を使えないようだ - ならば DB2 の T2 と同じ内容のテーブル T2 を DB1 にも作って、そこに外部キーを設定しては - となると DB2 の T2 と、DB1 の T2 の間でテーブル内容の同期をとる必要がある - では DB2 の T2 にトリガをセットして、T2 に対する INSERT・UPDATE・DELETE が 発生したら、自動的に DB1 の T2 に同じデータを反映するようにするのがいいのでは というものです。DB2 の T2 がごくまれにしか更新されないテーブルであれば、 トリガを使う必要はないかもしれません (30分に一回 INSERT INTO SELECT で DB2 の T2 の内容を DB1 の T2 にコピーするとか)。 別の案としては、DB1 の T1 に INSERT・UPDATE がかかったときに、トリガで DB2 の T2 のカラム A を見にいって、データが存在しなかったら RAISE して エラーにする、というのもあります。 http://www.postgresql.jp/document/pg803doc/html/plpgsql-errors-and-messages.html いずれも何も試さずに言ってます。念のため。 |
皆様こんにちは。 ここはcshの質問をしても宜しいのでしょうか? sedを使ってCSVファイルをTSVファイルに変換しようとしているのですが 変換元と変換先のファイル名にシェルの引数を認識してくれません。 if ($4 == CSV) then #TSVに変換 sed -e 's/","/ /g' $LOG_DIR/$1.bad | sed -n -e 's/"//gw $LOG_DIR/$1.bad' endif アクセス権がありませんとか、オープンできませんというエラーになります。 下記のようにフルパスにすると正常に処理してくれます。 sed -e 's/","/ /g' /disk1/FNC021.bad | sed -n -e 's/"//gw /disk1/FNC021.bad' ファイル名を「`」でくくったり\でエスケープ?してみましたがダメでした。 sedを知らないので頓珍漢なことをしているのかもしれません。 有識者の皆様、助けて下さい。m(_ _)m |
すみません!!! 過去ログを眺めていて、適当に sed -e 's/","/ /g' $LOG_DIR/$1.bad | sed -n -e 's/"//gw '$LOG_DIR/$1.bad'' と’’をつけたら動いてしまいました。。 どうもお騒がせしました。m(_ _)m m(_ _)m |
>>4210 まつ 今後は #!/bin/csh -fx などと -x オプションを付けてデバッグすることをお勧めします。 |
こんにちわ。 スクリプト内1行目に-fxオプションをつければよいのでしょうか? 知りませんでした。。御恥ずかしい。 どのような結果になるのか月曜にでも確認してみます。 どうもありがとうございました! m(__)m |
UNIX の部屋を更新しました。 http://X68000.q-e-d.net/~68user/unix/ 未稿の部分が多くて恐縮ですが、書けども書けども終わりが見えないので、 いったん公開することにします。 |
はじめまして、sekiと申します。 ftpに関しまして、分からない事があり質問させて頂きます。 どなたかご存知の方おられましたら、ご教示をお願い致します。 【環境】 ・Solaris8 ・in.ftpdを使用 【問題】 ・バッチ処理にて、バーチャルIPでftpを行い、他ホストに作成された ファイルを取得する。 ネットワーク障害時や他ホストdown時、バーチャルIPが見えなくなる場合、 ftpのconnect:接続の時間切れとなるが、その場合約4分も待たされる。 【知りたい事】 ・上記のような障害時、1ノードで約4分も待たされるのは長いので、設定で 短く出来るのであれば短くしたい。 【検証】 (1) OSパラメータのtcp_time_wait_interval=240000(4分)になっていたので、 ftpがconnect_timeoutになるのは、上位のTCPのタイマーに引っかかるのでは と思い、nddコマンドにて60000(1分)にしてinetdデーモンを、kill -HUPした。 変更後、バーチャルIPが見えないHostに対しftpを行なったが、以前4分で ftp_connect:接続の時間切れとなる。 (2) /etc/inet/inetd.confの、ftp記述部分を下記のように-tオプションにて タイムアウトを設定し、inetdデーモンを、kill -HUPした。 こちらも変更後、バーチャルIPが見えないHostに対しftpを行なったが、 以前4分でftp_connect:接続の時間切れとなった。 ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -t20 -l -d ※ 下記のURLを参考にさせて頂きましたが、FTPクライアントがFTP サーバに PORTコマンドを投げて応答なしで、データ用コネクションも張れない場合は どこの設定でクライアントはtimeoutを判断するのでしょうか? 私の推測のようにTCPに依存するものなのでしょうか? http://x68000.q-e-d.net/~68user/net/ftp-1.html |
はじめまして、sekiと申します。 ftpに関しまして、分からない事があり質問させて頂きます。 どなたかご存知の方おられましたら、ご教示をお願い致します。 【環境】 ・Solaris8 ・in.ftpdを使用 【問題】 ・バッチ処理にて、バーチャルIPでftpを行い、他ホストに作成された ファイルを取得する。 ネットワーク障害時や他ホストdown時、バーチャルIPが見えなくなる場合、 ftpのconnect:接続の時間切れとなるが、その場合約4分も待たされる。 【知りたい事】 ・上記のような障害時、1ノードで約4分も待たされるのは長いので、設定で 短く出来るのであれば短くしたい。 【検証】 1 OSパラメータのtcp_time_wait_interval=240000(4分)になっていたので、 ftpがconnect_timeoutになるのは、上位のTCPのタイマーに引っかかるのでは と思い、nddコマンドにて60000(1分)にしてinetdデーモンを、kill -HUPした。 変更後、バーチャルIPが見えないHostに対しftpを行なったが、以前4分で ftp_connect:接続の時間切れとなる。 2 /etc/inet/inetd.confの、ftp記述部分を下記のように-tオプションにて タイムアウトを設定し、inetdデーモンを、kill -HUPした。 こちらも変更後、バーチャルIPが見えないHostに対しftpを行なったが、 以前4分でftp_connect:接続の時間切れとなった。 ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -t20 -l -d ※ 下記のURLを参考にさせて頂きましたが、FTPクライアントがFTP サーバに PORTコマンドを投げて応答なしで、データ用コネクションも張れない場合は どこの設定でクライアントはtimeoutを判断するのでしょうか? 私の推測のようにTCPに依存するものなのでしょうか? http://x68000.q-e-d.net/~68user/net/ftp-1.html |
>>4215 seki > tcp_time_wait_interval=240000(4分)になっていたので、 tcp_time_wait_intrval は TIME_WAIT な時間を設定するものなので、 関係ありません。 http://docs.sun.com/app/docs/doc/816-0607/6m735r5ga?a=view > ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -t20 -l -d タイムアウト設定をしたいのは ftp であり、ftpd ではないので 関係ありません。そもそもネットワーク障害や他ホストが down して いるのであれば、ftpd まで行き着いていません。 今回設定したいのは、 http://X68000.q-e-d.net/~68user/net/tcp-connect-1.html における connect のタイムアウト時間と思われますが、OS の設定で 変更できるかどうかは知りません。ただし、普通は OS の設定は変更 しません。たとえば今後、 - FTP 接続だけは 10秒でタイムアウトさせたい - それ以外のプログラムでは 4分待たせたい というときにどうしようもなくなるからです。 対策としては、 - ftp に -T [タイムアウト秒数] オプションを付ける (試していませんが) - ftp の前に ping してみる (タイムアウト秒数を指定) - 監視用プロセスをたて、一定時間反応がなければ ftp を kill する てな感じでしょうか。 |
>>4216 68user > たとえば今後、 > - FTP 接続だけは 10秒でタイムアウトさせたい > - それ以外のプログラムでは 4分待たせたい > というときにどうしようもなくなるからです。 → 誠に早急なご返答、及びご教示の程、ありがとうございます。 上記の返答、ごもっともです。 - ftp に -Tをつけるのは、一つの手だと思いますが、APLに手を 入れる事なく設定変更で済ませれるのであれば済ませたいです。 申し訳ございませんが、ftpのソースコードなどは開示されていないので しょうか?? (4分でタイムアウトするという事は必ずどこかを見て判断しているはずですので ソースにじか書きしている可能性もある?かと思われるため確認したいです。) |
>>4218 seki 横からすみません. ftpのポート21でconnectできるかチェックするPerlスクリプトを 書いてみました.試していただけますか? use Socket; $SIG{'ALRM'} = sub { close(SOCK); $sTimeout='(timeout)'; }; # ConnectTest(IPアドレス,ポート,タイムアウト秒数) if (!&ConnectTest('192.168.x.x',21,5)){ print "cannot make a ftp connection.\n"; exit; } # 正常ならばftpコマンドを実行 system ('ftp hogehoge'); exit; sub ConnectTest { local($sIP,$nPort,$nTimeout)=@_; local($iaddr,$paddr,$flag,$protoTCP,$sTimeout); $iaddr = inet_aton($sIP) || die "no host: $sIP"; $protoTCP = getprotobyname('tcp'); $paddr = sockaddr_in($nPort, $iaddr); $flag=socket(SOCK, PF_INET, SOCK_STREAM, $protoTCP); if (!$flag){ goto J1_1; } $flag=0;$sTimeout=''; eval { alarm($nTimeout); $flag=connect(SOCK, $paddr); alarm(0); }; if (!$flag){ goto J1_1; } if ($sTimeout){ goto J1_1; } close (SOCK); return 1; J1_1: close (SOCK); return 0; } |
>>4218 seki > ftpのソースコードなどは開示されていないのでしょうか?? Solaris8 のソースは配られていたかどうかは忘れましたが、いずれにせよ ソース中には 4分という記載はありません (見てませんが)。connect(2) の タイムアウトを決めるのはカーネルの仕事です。 で、 http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-3.html#ss3.5 によると、 # ndd -set /dev/tcp tcp_ip_abort_cinterval 180000 で変更可能なようです。 > APLに手を入れる事なく設定変更で済ませれるのであれば済ませたいです プログラムに手を入れるよりもカーネルの設定を変える方がよいというのは 間違った判断だと思います。 まぁ客や上司の意向とか、ソース触ったら契約がどうこうとか、世の中には うっとうしいことがいろいろあるので別にいいですが。 >>4219 Netboy ウチの環境では動きました。 |
usen-221x242x135x85.ap-US01.usen.ad.jp (221.242.135.85) の方、 /~68user/net/sample/http-auth/secret.html に 21分間で 25万回アクセスするのは、ぜひともやめていただきたい。 って言っても、どうせ見てないんだろうし、deny したところでおそらく動的に IP アドレスを振ってるだろうし、こういう輩はどうしたらいいんですかねぇ。 |
>>4221 68user いや、もう、それは管理部門に連絡するのが良いでしょう。 満足いく内容かどうかはともかく、大抵は何らかの返答はありますよ。 #釈迦に説法のような気がしてなりませんが。 |
>>4222 へにか なるほど、そういうものですか。usen ならここらへんでしょうか。 http://www.fttx.co.jp/jp/contact/abuse.html ただ、マシンが落ちるなどの実害はなかったことと、usen の web によると 実名を書けだの、仲介しかしないだの、めんどくさそうなので今回は 放置します。 ちなみに「どうしたらいいのか」というのは技術的な解決方法はないですかねぇ、 という意味でした。たとえば一定時間に指定の閾値を超えた IP アドレスは deny するような apache のモジュールがどこかにありそうですよね。 というわけで探したらありました。 http://www.netnice.org/pukiwiki.php?%B4%FB%C2%B8%A4%CEApache%A5%C8%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%C0%A9%B8%E6%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB まぁほんとにしつこくやってくるようなら usen ごと deny するので 別にいいんですけどね。 |
あぁ、技術的な話でしたか。 それに似た話は、某掲示板群で話題になってますね。 http://qb5.2ch.net/operate/kako/1113/11135/1113508190.html http://qb5.2ch.net/test/read.cgi/operate/1113647422/ しつこいクローラー&過剰リロード対策についての議論です。ご参考までに。 因みに、他の業者に対しては本名を名乗ったことはありません(へにかのまま)。 usenも変な話で、被害をこうむったほうの名前は聞くけど、被害を出したほうの 名前は出さないっていうことですよね? その辺を突っついてみると、なんらか の回答が出るかもしれません。・・・が、放置されるとの事ですので、補足意見 とさせてください。 |
"ネットワークプログラミングの基礎知識"等にある サンプルプログラムのライセンスはどうなっているのでしょうか? |
>>4222 へにか 危ない その輩は server:os-ns01.usen.ad.jp address:61.122.127.122 name:221x242x135x85.ap.221.ftth.ucom.ne.jp address:221.242.135.85 私は server:os-ns01.usen.ad.jp address:61.122.127.122 name:******* address:61.116.228.135 なんですけどサーバーが同じだと危ないのですかね? |
>>4225 mmm 過去ログ読んでから質問した方がいいですよ。 ライセンスについては >>4089 68user にあります。 |
すいません、質問させてください。 UNIX上で、ファイルをmac用にstuffit形式に圧縮できるツールを探しているのですが、 ありますでしょうか。 |
素人ですが質問させてください。 solaris9 cにて開発しています。 クライアントサーバ間を常駐プロセス1:1(クライアント1、サーバ1プロセス)にて TCP/IPソケット通信しようと考えています。 1接続毎にconnect/closeするのではなく、常にconnectionし続けようと考えています。 そこで、質問ですが、通信中にサーバ側がなんらかの理由により切断された場合、クライアント側は connectからやり直す必要があるのでしょうか? それともsendを行えば内部的にconnectを行って、sendしてくれるんでしょうか? 質問が下手ですみません。 |
環境はSunOS 5.8です。 ------------------------ #!/bin/csh -fx setenv LANG ja_JP.PCK ・・・ ------------------------ というrootから起動されるshellスクリプトを実行すると (あるバッチ処理管理ソフトを使って起動するとrootから起動されるのです) setenv LANG ja_JP.PCK Locale could not be set properly というエラーになってしまうのですが、何故か分からず困っています。 助けて下さい。 m(_ _)m telnetでuser01でログインしてsetenvを実行すると LANG=ja_JP.PCK となっていますが、上記スクリプトにsetenvを記述すると LANGは表示されません。 スクリプトにsetenv LANG ja_JP.PCKを記述しないと echo チェックリスト作成処理(/disk1/hoge/hoge01/sh/AAA001.csh) 開始 Unmatched ` というエラーになります。 telnetでuser01でログインして実行するとsetenv LANG ja_JP.PCKが なくても正常終了します。 どうぞ宜しくお願い致します。 |
>>4226 匿名 > なんですけどサーバーが同じだと危ないのですかね? う〜ん、僕には力不足で答えられないです。ところで危ないって、どういう局面を想定されていますか? しかし、その輩、ftth.ucom.ne.jpって、FTTH! うらやましいなぁ。そんな贅沢な帯域があるんだったら、有効に使ってほしい今日この頃です。 |
>>4224 へにか なるほど、そちらも参考にさせていただきます。 >>4226 匿名 > server:os-ns01.usen.ad.jp というのは、あなたが使用している DNS サーバが os-ns01.usen.ad.jp であることを示しているだけです。普通は、どの IP アドレス・FQDN に ついて正引きや逆引きをしても、「server」の部分は変化しません。 >>4228 りゅう シェアウェアっぽいですが、 http://www.stuffit.com/unix/index.html など。あと、 http://www.asl.ee.meisei-u.ac.jp/kaken/stuffit.j.html によると netatalk にも含まれているとか。 >>4229 しず > connectからやり直す必要があるのでしょうか? コネクションが切れた場合は、connect しなおす必要があります。 >>4230 まつ よくわかりませんが、手元の Solaris8 でも同様の結果になりました。setenv が 呼ばれると、シェルは putenv(3) するだけではなく setlocale(3) あたりも呼ぶ 必要があるような気がしますが、Solaris8 の csh はそこの処理にバグがあるのでは ないかと思います。 csh をやめて sh・tcsh・ksh などに切り替えるか、あるいは #!/bin/sh exec env LANG=ja_JP.PCK 実行したいスクリプト名 というような wrapper スクリプトをかませてはどうでしょうか。 |
>>4232 68user 他のサーバー(同じくSunOS5.8だったはずです)では同じように rootから実行できているのです。何かが違うのでしょうね。。 両サーバーのrootの環境を比較するなりしてみます。 #サーバー管理者へ依頼する必要があるのですが・・・ 社内の人より下記で逃げられるという指摘もありました が、他サーバーで出来ているので腑に落ちません。 ----------------------------- unsetenv LC_ALL setenv LANG ja_JP.PCK setenv PATH .:$PATH /usr/bin/env set echocmd=/usr/bin/echo $echocmd 'チェックリスト作成処理($0) 開始' ----------------------------- それでも分からなければwrapperスクリプトをかませてみます。 他に何かありましたらご教示下さい。 |
>>4233 まつ > が、他サーバーで出来ているので腑に落ちません。 想像ですが、OS インストール時に ja_JP.PCK を選択すると うまく動くのかもしれません。 |
>>4233 まつ 問題のあるサーバだけLC_ALLが設定されていませんか? localeコマンドの結果を比較してみてください。 どちらのサーバでも設定されているのであれば 導入されているロケールパッケージ(?)の差だと思います。 |
>>4235 zsh お察しの通り、問題のあるサーバだけLC_ALLが設定されていました! --動かないサーバー----------- LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=JA16SJIS --問題ないサーバー----------- LANG=ja_JP.PCK LC_CTYPE="ja_JP.PCK" LC_NUMERIC="ja_JP.PCK" LC_TIME="ja_JP.PCK" LC_COLLATE="ja_JP.PCK" LC_MONETARY="ja_JP.PCK" LC_MESSAGES="ja_JP.PCK" LC_ALL= ----------------------------- 1、rootでLC_ALLが設定されているという事でしょうか? 2、問題ないサーバーと同じ環境にするには何処を直せば良いのでしょうか? 3、2がサーバー管理方針などで変更できない場合、C-Shellで unsetenv LC_ALL setenv LANG ja_JP.PCK とすれば良いのでしょうか? 宜しくお願い致します。 |
>>4232 68user >コネクションが切れた場合は、connect しなおす必要があります。 コレクションが切れているか否かの検知ですが、クライアントからsendを 行ったときのタイムアウトを検知したときが一般的でしょうか (むしろこれしかない?) 宜しくお願いします。 |
>>4235 zsh 試しに下記を実行してみましたが、元に戻ってしまいました。。 echo内の日本語が文字化け?して「`」になっている為でしょうが 何故未だ日本語が表示できないのでしょうか? 問題ないサーバーではダブルコーテーションで囲まれてるのに 下記結果では囲まれてないのがダメなのでしょうか? ---------------------------------------------------- #!/usr/bin/csh -fx locale unsetenv LC_ALL setenv LANG ja_JP.PCK setenv LC_CTYPE ja_JP.PCK setenv LC_NUMERIC ja_JP.PCK setenv LC_TIME ja_JP.PCK setenv LC_COLLATE ja_JP.PCK setenv LC_MONETARY ja_JP.PCK setenv LC_MESSAGES ja_JP.PCK locale echo "ロードエラーチェックリスト作成処理($0) 開始" ---------------------------------------------------- locale LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=JA16SJIS unsetenv LC_ALL setenv LANG ja_JP.PCK setenv LC_CTYPE ja_JP.PCK setenv LC_NUMERIC ja_JP.PCK setenv LC_TIME ja_JP.PCK setenv LC_COLLATE ja_JP.PCK setenv LC_MONETARY ja_JP.PCK setenv LC_MESSAGES ja_JP.PCK locale LANG=ja_JP.PCK LC_CTYPE=ja_JP.PCK LC_NUMERIC=ja_JP.PCK LC_TIME=ja_JP.PCK LC_COLLATE=ja_JP.PCK LC_MONETARY=ja_JP.PCK LC_MESSAGES=ja_JP.PCK LC_ALL= echo [hG[`FbNXgャ(/disk18/acua/acua01/sh/FNC07998.csh) Jn 不整合 - ` ---------------------------------------------------- |
>>4238 まつ 実験してみましたが、うまくいかないサーバには ja_JP.PCK の ロケールがインストールされていないようです。 >>4232 68user で「csh のバグでは」と言いましたがこれは誤りで、csh だけが 真面目にエラーチェックしているような感じです。 動かないマシン (Solaris8) の /usr/lib/locale/ja_JP.PCK/: LC_MESSAGES/ 動くマシン (Solaris2.6) の /usr/lib/locale/ja_JP.PCK/: LC_CTYPE/ LC_MESSAGES/ LC_TIME/ ja_JP.PCK.so.1 locale_description methods_ja_JP.PCK.so.1 そして ja_JP.PCK ロケールが含まれているマシンであっても、 #!/bin/csh setenv LANG ja_JP.PCK echo "ロードエラーチェックリスト作成処理($0) 開始" このスクリプトは動作しませんでした。おそらく、ja_JP.PCK にした 時点では、既にスクリプトの字句解析は終了しているからだろうと思います。 対策案は 3つ。 案1. - ja_JP.PCK ロケールをインストールする。インストール方法は知りませんが、 以前他のマシンから /usr/lib/locale/ja_JP.PCK/ をぶっこ抜いてきたことが あったっけ。 - さらに wrapper スクリプトを作る 案2. Shift_JIS の「チ」の 2バイト目が ` であることが直接の原因なわけで、 echo 'ロードエラーチェックリスト作成処理('$0') 開始' などと '' で囲んで ` を解釈させないようにする。 案3. 一番いいのは、スクリプトを EUC-JP に変えて、ロケールを混在 させないこと。 あと、 > LC_ALL=JA16SJIS というロケールは存在しないので、おそらく無効なロケール扱いされて いるでしょう。JA16SJIS って Oracle 的なロケール表記ですから。 LANG と LC_* の関係は以下の URL をどうぞ。 http://www.jp.freebsd.org/QandA/HTML/2199.html http://www.jp.freebsd.org/QandA/HTML/2200.html |
>>4237 しず send はローカルの mbuf にデータをコピーしたら正常終了と みなすので、エラーになりません。 recv でエラーになるか、次回の send で EPIPE が発生するかの いずれかです。 |