Yuuki様; cygwin1.dllを入れ直したら、無事forkしました。 色々、ありがとうございます! 嬉しいです。 嬉しさのあまり、証拠画面を作成しました。 以下に示します。宜しかったらご覧ください。 http://henika.virtualave.net/echotest.gif |
> smbclientコマンドのオプション-Mってありますよね。 すいません、samba の設定をしたことがないのでわかりません。 > いま調べまくって Proxy を VisualBasic で作成中です。 HTTP proxy ですか? それとも ftp? > 状態遷移図を書かずにやってるのとで、サーバからのデータを > 取りこみきれずにソケットが閉口(笑)してしまいます。 あ〜、普通 状態遷移図を書くもんなんでしょうか。 僕は素人なので思いつくままコーディングしている のですが。その結果、close でソケットが閉じず、 shutdown しなきゃならないプログラムが出来上がりました (笑)。 > なんかFreeBSDとBSD/OSの会社が合併するようですね。 FreeBSD Project に資金提供して、その見返りとして CD-ROM を 売っている (と言っても、誰でも CD-ROM を売ってもいいんです けどね) Walnut Creek と、BSD/OS を作っている BSDI が合併、 ということです。念のため。 個人的には、OpenBSD,NetBSD 陣営とも一本化してほしいもんです。 人手が分散するのが惜しい。Linux 界も、あそこまでディストリ ビューションを乱立させることもないと思うんですが…。 > へにかさん、Yuuki さん Windows ユーザへの注意点とか、ここから perl を落とせとか、 そこらへんがまとまってるリンク先があれば、 http://X68000.startshop.co.jp/~68user/net/ に付け加えますが、何かいいところはありますか? |
いまつくってるのは、なぜか http-proxy です。 状態遷移図とかは、商売上お客さんに納入しないとだめなときが ありますが、あればあったで、自分が混乱したときに役立ちます(笑) |
質問です。 wwwboardに以下のような行がありますが、 print <CACHE>; これは my @line = <CACHE>; print @line; と同じような動作をするのでメモリに負担がかかるような気がするのですが どうなのでしょう? |
> メモリに負担がかかるような気がするのですが う、その通りですね。修正しておきます。ありがとうございました。 |
> print <CACHE>; の他にも、なんやかんやと掲示板をいじってみたり。 というわけで、テスト。 すいませんが、古い cookie は多分効きません。 |
> Windows ユーザへの注意点とか、ここから perl を落とせとか、 > そこらへんがまとまってるリンク先があれば、 僕が見てきたページには無いようです。 僕がそこらへんをまとめたページを作りますね。 WindowsでPerlをやる時の注意点 てな感じで。 > 古い cookie は多分効きません。 例によって、名前を入力する場所に "68user"と入ってました。:-) |
> 例によって、名前を入力する場所に "68user"と入ってました。:-) ありゃ、古いバグを掘り起こしてしまった…。 |
まとめたページ、とりあえず作りました。 まだ情報が少ないですが、、(なのでまだ公開してない) http://homepage1.nifty.com/tyuuki/perl/windows_perl.html かなり眠い状況で書いたので間違いあるかも。です。:-) |
あ、Yuuki様が既に・・・ でも折角なので、投稿してしまいます。 ご希望に何処まで沿えるかどうか分かりませんが、これが良いと思います。 http://www.st.rim.or.jp/~nakata/ (但し後半部分のリンク集) ただ、これだとfork可能な、cygwin上のperlへは辿り着かないので、 Yuuki様が紹介された、以下のサイト、 http://www.jaist.ac.jp/~fujieda/cygwin/ 更に、cygwin1.dllを入れ替えなければならないので、その参考として、 http://www.jaist.ac.jp/~fujieda/cygwin/snapshot.shtml を付け加えればいいかと存じます。 cygwinをインストールして、perlをインストールして、cygwin1.dllを 入れ替えて、やっと動作するので、forkが必要な場合以外でインストール するのはかなりしんどいかも知れません。ActivePerl(http://www.activestate.com/) がforkをサポートさえすれば、最初に紹介したサイトが一番良いと思います。 ついでに進捗; なんとか、mime typeを認識まで出来ました。後はtextのfilterを入れる 寸前で(schedule的に)停止中・・・ あと、全く関係無いですが、状態遷移図からプログラムを吐き出すソフト、 って存在するのですか? フローチャートだと、 programa(http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/)が面白いです。 ハードだと、stateCADやDesignBookが有名です。 ※ cookieを久しぶりに食べたら、名前が へにか Email になって ました。また、WWWC(更新チェッカ)で3/14 8:22にチェックしたら、 3/13 22:12でした。更に、曜日が、羨ましい状態です。 |
はじめまして。UNIXのコマンドの質問なのですが... % ls -l -rw-r--r-- 1 *** ***** 2449 Mar 14 08:17 **.* -rw-r--r-- 1 *** ***** 1739 Mar 14 08:17 **.* -rwxr-xr-x 1 *** ***** 1223 Mar 8 00:04 **.* -rw-r--r-- 1 *** ***** 4135 Mar 14 08:20 **.* -rw-r--r-- 1 *** ***** 29140 Mar 14 08:20 **.* と、こんなかんじで表示されると思うのですが、そのとき↓のように表示したいときは どうすればいいですか? 2449 1739 1223 4135 29140 こんなかんじにファイルサイス゛列だけを表示したいのですが教えてもらえますか? |
こんにちは。 > ファイルサイス゛列だけを表示したい わたしなら、 ls -l | awk '{print $5}' かなぁ。 awk って便利ですよね〜 |
kuwさん、ありがとうございました。 助かりました。 |
はじめまして レンタルサーバを借りていて、telnetで少々時間のかかるコマンドを バックグラウンドで順番に実行させようと思っているのですが、 ログアウトするとどうもプロセスが終了してしまうようなのですが・・・ ログアウト後も終了させないでつづけさせるにはどうしたら良いのでしょう? ちなみに、commandA&&commandB &っていうふうにコマンドラインには 入力しています。 超初歩的な質問だとおもいますが、よろしくお願いします。。。 |
> ログアウト後も終了させないでつづけさせるには http://X68000.startshop.co.jp/~68user/unix/pickup?nohup でいいですか? > 更に、曜日が、羨ましい状態です。 おぉ、毎日が日曜日…。 Win+perl の件は後程。 |
スゴい深刻な問題抱えてますーーーー。 連休明けまでに(3月20日までに)プレイステーション2売ってくれる 人いませんかーーーー????? チョットクライ高くてもかまいませんんんん。 |
> cygwinをインストールして、perlをインストールして、cygwin1.dllを > 入れ替えて、やっと動作するので 勘違いしてCygwinをダウンロード(13MB)する人がいるかもしれないので一応。 CygwinPerlをインストールするためにCygwinをインストールする必要はないです。 どうするかというと、それは僕のページに書いてます。:-) (http://homepage1.nifty.com/tyuuki/perl/windows_perl.html) |
>68userさま お返事ありがとうございます。 リンク先のnohupコマンドを使ってやってみたのですが やっぱりログアウトするとプロセスが終了してしまうみたいです。 nohup /home/hoge/hage/commandA&&/home/hoge/hage/commandB & というかんじで入力しているんですけど。。 実行すると「nohup: appending output to `nohup.out'」 というメッセージがでます。 こういうやり方でいいんですよね? サーバの設定の問題なのかな? どうすればいいんだろうか。。 |
> 実行すると「nohup: appending output to `nohup.out'」 ということは bash をお使いだろうと思いますが、こちらでは nohup commandA && nohup commandB & でできました。tcsh なら ( nohup commandA && nohup commandB ) & とサブシェルに実行させれば動くようです。 |
Yuuki様; >勘違いしてCygwinをダウンロード(13MB)する人がいるかもしれないので一応。 うっ、た、確かに・・・ ご指摘ありがとうございます。 会社のマシンでも、pathからcygwinをはずして、usr\以下にpathを 追加し、そこにcygwin1いれると、動いてました。 あと、Yuuki様のページ、なかなかインストールしやすくなっていて、 感心しました。 |
DVDとCD−RWが一緒になっているドライブがあると聞いたけど、これってお買い得? |
モジュール関係を中心に更新しました。 http://X68000.startshop.co.jp/~68user/net/ さすがにネタが尽きてきた & 飽きてきた。何かおもしろい 題材ないですかね。NNTP も ICQ もいまいち食指が動かないなぁ。 あと、Windows+perl を使うときの参考ということでリンクを 張りましたが、よいですか?>Yuuki さん # 「よいですか?」というのは (失礼な言い方でなりますが) # こういう分野は情報がすぐに古くなるので、定期的に更新を # 続ける気はおありですか? ということ。 ## 僕は Windows 使ってないため、情報が正しいかどうか全く ## チェックできないので。 なお、ちょっと忙しくなるので、26〜27日あたりから 4月中旬まで しばらく掲示板を閉めます。 |
>こてつさん DVDとCD-RWくっついてるやつは 性能的にみても,別々に買ったほうが安いので 辞めといたほうがよろしいかと。 >68user様 自作機で新マシン作りました。ハード関係 前より詳しくなりましたよ。CGIは相変わらずですけど。 奥深いですね。自分で組むと全く動かないです(w |
> あと、Windows+perl を使うときの参考ということでリンクを > 張りましたが、よいですか?>Yuuki さん はい。大丈夫です。 |
> はい。大丈夫です。 了解です。 > 自分で組むと全く動かないです(w CGI ってのはデバッグしにくい環境なので、いろいろと がんばってみて下さい。 いろいろとありまして、転載についての説明を http://X68000.startshop.co.jp/~68user/ に加えました。ご一読下さい。 予告通り、4月中旬まで掲示板は閉めます。ではまた。 |
68user様 突然掲示板に書き込む無礼をお許しください。 私はネットワークの勉強をし始めたばかりの薩摩という者です。 こちらのページは大変奥深く、いつきても感動してしまいます。 ところで、今回意を決して掲示板に書き込むことに決めたのは、 ftptransのforkの部分を4引数selectを用いたらどうなるかを 知りたかったためです。 自分で考えてみたのですが、ソースが汚くなってしまい、 もし68user様ならどのように書かれるのか気になって しまったのです。本当ならこういうソースはメール等で お送りすべきとは思うのですが、こちらの方でするように とありましたので、いかに書きます。なお、ftptrans内で 用いられているサブルーチンはそのまま使わせて頂きました。 if ($passive){ &client_work(DATA,$data_connection_host,$data_connection_port); } $rin = &set_bits(COMMAND,DATA,DATA_WAITING); while(1){ $ret = select($rout=$rin,undef,undef,undef); if(fileno(COMMAND) && vec($rout,fileno(COMMAND),1)){ $ret = &read_response; if ( $ret =~ m/^5/ ){ print STDERR $ret; close(DATA); close(DATA_WAITING); exit; }elsif( $ret =~ m/^1/ ){ if ($mode eq put){ open(IN,$infile) || die "$infile: $!"; while (<IN>){ print DATA $_; } close(IN); } }elsif( $ret =~ m/^2/ ){ close(DATA); } }elsif(fileno(DATA_WAITING) && vec($rout,fileno(DATA_WAITING),1)){ accept(DATA,DATA_WAITING); $rin = &set_bits(COMMAND,DATA,DATA_WAITING); close(DATA_WAITING); }elsif(fileno(DATA) && vec($rout,fileno(DATA),1)){ open(OUT,">$outfile") || die "$outfile: $!"; print OUT <DATA>; close(OUT); close(DATA); exit; } } sub set_bits { @sockets = @_; $rin=""; foreach $sock (@sockets){ if(fileno($sock)){ vec($rin,fileno($sock),1)=1; } } return $rin; } sub to_bin { return unpack "B*",$_[0]; } 以上です。投稿が非常に長くなってしまいましたが、 気付いた点がありましたら御指摘いただけると幸いです。 また、68user様がかかれた物も拝見できましたら ありがたいのですが。 以上、よろしくお願いします。 |
ごめんなさい。下の投稿をしたのは僕です。 名前が抜けていました。どうも削除はできないようなので、 もう一度投稿しました。 本当にごめんなさい。 |
どうも、おひさしぶりです。再開おめでとうございます。 散々アドバイス頂いて、スクリプトも頂いて、そのおかげでなんとか perl proxyを作れました。本当にどうもありがとうございます! sysreadの返値がundefかどうかを判定するところではまってました。 これでやっと当初の目的(漢字変換および80桁で折り返す、ヘブライ語 のテキストをiso-8859-8-iからiso-8859-8)に取り掛かれます・・・ |
ふう、やっとネットワークに繋がった。 > perl proxyを作れました。 あれを完成させてコメント付けて解説付けて公開するつもりでしたが、 全然進んでないので、置いておきます。 http://X68000.startshop.co.jp/~68user/tmp/2nd-proxy.pl へにかさんのが これより高機能なら公開して下さいね。 # 不具合: # POST の長さについて、実際のデータより少し多めに送ってしまう # ような気がする & たまに永遠にソケットを読みに行ってしまう # ことがある & ブラウザ側が途中で切断しても proxy 側が感知できない。 # perl5.004 だと動かないような気がする。perl5.005_05 以降 # ということで。 >薩摩さん これって動いているんですよね。ならいいんじゃないでしょうか。 でもまぁ、せっかく select を使っているんだから、 > while (<IN>){ > print DATA $_; > } せずに、read して 再度 select で待つとよいかもしれません。 そうすれば、「現在 〜% 読み込み中、あと何秒、(〜bytes/sec)」 なんてのを刻々と表示できますし。表示するかどうかは別としても、 僕ならそうすると思います。 |
68user様 有難うございました。なるほど、readを使うとは 思い当たりませんでした。これから挑戦してみます。 有難うございました。 |
68userさんへ どうも、はじめまして UNIX初心者です。 私はUINXの勉強をし始めたばかりの岡野という者です。 こちらのページはいつもお世話になっています。 実は、userさんにgzipがなぜ使えないのか?? どうしても知りたかったため 投稿をしました。 gzipをインストールをして、pathで環境設定をしたんですが・・・・ バイナリーファイルを実行できません。 gzip -d bash-2.03-sol7-sparc-local.gz と打ったのですが、 /GNUzip/root/usr/local/bin/gzip:execフォーマットエラー こう出てきました。 なぜでしょう? OSはsolaris5.7です。 |
exec フォーマットエラーという意味がわからんので確認して下さい。 適当なファイル foo を用意して、gzip foo で foo.gz が作成されますか? できるなら、 bash-2.03-sol7-sparc-local.gz が壊れているんでしょう。 gzip foo でも exec フォーマットエラーとなるなら gzip 自体がおかしいんでしょう。どうやってgzip を インストールしましたか? |
>68user こんちは。いろいろおつかれさまです。 もうおともだちはできましたか? さて、早速ですが、以前作っていただいた掲示板のCGI、 実はダウンロードしたつもりで忘れていたみたいです。 いろいろ探してみたんですが、見つかりませんでした。 なので、お手数ですが、もっかいどっかにアップしてやって下さい。 |
はじめましてこんにちは。 diffコマンドで質問があるのです。 最終行にnewlineがあるファイルとないファイルを比較したとき、 newline以外の部分が同じでも、その行は違うよと答えてきます。 newlineあるなしに関わらず内容部分だけでdiffするにはどうしたら良いでしょうか。 どうか教えてください。よろしくお願いします。 |
> diff うちの GNU diff-2.7 では、-b オプションで お望みの動作をしているようです。 > もうおともだちはできましたか? まぁ、それなりに。というより、ずっと一緒に研修受けてるから 自然に仲良くなるって感じですかね。 > もっかいどっかにアップしてやって下さい。 すんませんが、もうちょいデバッグしてから送ります。 どういうバグが残ってたのかも忘れてしまったので。 週末に仕上げる予定。 |
68userさん、お返事ありがとうございます。 >うちの GNU diff-2.7 では、-b オプションで >お望みの動作をしているようです ぼくが使ってるやつで-bオプションを使ってもゆうこときいてくれないです。 何か他の方法あれば教えてください。お願いします。 |
-y とか -B などはどうですか。なお、FreeBSD の diff では http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=diff&dir=jpman-3.4.0%2Fman という意味です。ご自分の環境の diff のマニュアルを見て、 同じようなのを探して下さい。 なお、SunOS などに付いてくる低機能な diff じゃ無理かもしれません。 あとは perl などで最後の改行を削除してから diff、くらいしか 思い付きませんねぇ。 |
68userさんへ お返事ありがとうございます。 ぼくの使っているSunOS環境のdiffではダメなようですね。トホホ。 どうやら末尾のスペースまたはタブしか無視してくれないようです。 perlもつかえる環境ではないのです。仕事先なのでインストールもできないです。 またいろいろとチャレンジしてみます。 ありがとうございました。 |
65userさんへ お返事ありがとうございます。 いろいろ調べてみたのですが、SPARC と INTEL を間違えていたみたいです。 間違えてINTELをダウンロードしてしまったみたいです・・・・ bash-2.03-sol7-sparc-local.gzを展開したら bash-2.03-sol7-sparc-localになってこれは展開できてるんですよね でもその後にどうやってインストールしていいかわかりません。 お願いします 教えてください。 |
> でもその後にどうやってインストールしていいかわかりません。 http://hiroyuki.oresama.org/tech/solaris/install.solaris.html など。僕は package から入れたことがないので、詳しいことは わかりません。 > ぼくの使っているSunOS環境のdiffではダメなようですね。 GNU の diffutils を入れるのは? SunOS のコマンドは 貧弱すぎて、僕はほとんど使ってないです。 |
>へにかさんのが これより高機能なら公開して下さいね。 僕のproxyは、 1) 1st-proxy.plに対し、 a) sysreadの返値をdefinedでチェックするところ、 b) フィルタをかけられるようにしたところ、 c) 環境変数を配列に貯えたるところ、 以外は、あまり変わらないところ、 2)68userさんが示された、2nd-proxy.plの不具合の内容に対するような 観点ではチェックしていない(というか、僕が遊べる程度でしかチェック していない)ところ、 という事で、まだまだ公開できるレベルではないです。 すいません・・・ |
疑問が何点かあります。 アスキー形式ファイルとは具体的に言えばどういう事なのでしょうか。 それと、中間ファイル、圧縮形式、プロッタ言語の意味がわかりません。 どうか、お教え下さい。困っています。 よろしくお願い致します。 |
何の話かわからないです。CAD ですか? > プロッタ言語 HPGL とかのこと? プロッタに座標 (10,20-200,300) の 直線を書かせるには (HPGL を解するプロッタならば) PD10,20;PA200,300; (だったっけな?) という文字列を送れば、 あとはプロッタが適切に解釈して線を引いてくれるってこと。 アスキーと圧縮形式はコンピュータ一般の用語ですが、 CAD 界ではどうなのか知りませんので何とも言えません。 中間ファイルは CAD の処理系依存でしょう。多分。 なお、僕は CAD を全く知りません。 > 週末に仕上げる予定。 すまんす。仕上りませんでした>has |
SFCのドラクエ3ですが、 最後のゾーマにあえません。 のぼっても、もぼっても、くだっても、くだってもおなじ階段とかって、 関係あります???? |
こんにちは。cgi-mlの記事を見て、このサイトの存在を知りました。 大変参考になります。 ところで、 http://x68000.startshop.co.jp/~68user/net/pop3-2.html に書かれている「Linux や Solaris の /etc/services には……」の部分で、 手元のSolaris2.5.1(x86)及びFreeSolaris7(x86)、Linux(Slackware,Plamo/98)を調べてみましたが、 pop3 110/tcp の記述になっていました。 Solaris2.5.1はわかりませんが、他の環境は私がデフォルト設定でそうなっているのを確認しましたので、 間違いないと思います。 68userさんが見られた設定は、管理者が書き換えたものではないでしょうか? |
> Solaris2.5.1(x86)及びFreeSolaris7(x86)、Linux(Slackware,Plamo/98)を > 調べてみましたが、pop3 110/tcp の記述になっていました。 情報どうもです。僕が調べたのは Solaris 2.5.1 と 2.6 だったかなぁ? Linux はバージョンはおろか、ディストリビューション名さえ覚えていません。 # NIS で Solaris2.3 から services を引っ張っていた可能性もあるなぁ…。 > 管理者が書き換えたものではないでしょうか? 片方の Solaris は わかっている人が管理してたから書き換えるような ことはしないと思うし、もう一方の Solaris は素人が管理してたから 多分書き換えるようなことはしないと思いますが、既に確認できないです。 どなたか、この辺の情報をお持ちでないですか? 「うちの Solaris も pop3 110/tcp」だった、と言っていただければ、その記述は削除しておきます。 |
> # NIS で Solaris2.3 から services を引っ張っていた可能性もあるなぁ…。 古いSolaris(2.5.1も十分古いか?(^^;)だと、pop-3とかで書いてある 可能性が高いですね。pop2だと、以下の記述になってます。 Solaris2.5.1(x86) /etc/services pop-2 109/tcp # Post Office Solaris7(x86) /etc/services #pop2 109/tcp pop-2 # Post Office Protocol - V2 #pop-2 109/tcp # Post Office (あ、さすがに7まで来るとコメントアウトになってる<デフォルト) ということで、Solaris2.3からそのままservicesをもってきている場合は、pop-3の 記述であるのも頷けますね。 |
ただいまWAPのペ−ジを作成していますが、どうも文字のエンコ−ドがうまくいかずいきづまっています。 誰か助けてください。 |
> ただいまWAPのペ−ジを作成していますが、どうも文字のエンコ−ドがうまくいかずいきづまっています。 > 誰か助けてください。 環境がどうなのか全く分からないので、的外れかもしれませんが、 HDMLの文字コードに関する問題ならば、 http://www.houshinji.org/hdml.html のサイトが参考になるかもしれません。 |
> Solaris2.3からそのままservicesをもってきている場合は、 > pop-3の記述であるのも頷けますね。 では、次回更新時に「古い Solaris (おそらく Solaris 2.3 あたり) では、pop-3 となっている可能性があります。最近のものだと 大丈夫でしょう。」としておきます。 そういえば、あのときの Linux は…Netboy さんのとこだったかなぁ。 確認しておこう。 |
Netboy さんに聞いてきました。 http://www.lunartecs.ne.jp/~segabito/cgi/bbs/minibbs.cgi debian 系が pop-3 なのではないか、だそうです。 # Linux ってのは Slackware/Redhat/debian 系の3本柱があるんですよね? # で、Vine は debian 系…? |
失礼します. >Vine は debian 系…? いえ,Redhat系です. 設定ファイル作成部分のみDebian系の(古めの?)スクリプトを元に 独自のものを用意した...のかな,という感じです. インストーラは配色がいい感じの独自のものでした. Linux関連で'pop-3'になっているものは,どこか当時の Debianの香がする,ということだけ判りました. 今のDebian(2.2?)は判りません. おじゃましました〜. |
どうもです。 というわけで、やはり pop-3 な環境もあるようだ、ということを 追記しておきます。 |
68user様 こんにちは。 以前お世話になりました薩摩です。 その節はありがとうございました。 実は、68user様のecho-serverプログラムを参考にしまして ローカルで動くftpproxyを作ったのですが、echo-server プログラムにftp処理をくっつけただけのプログラムになって しまいまして、知り合いに配布しようかと考えているのですが、 CGIの引用は自由とは書いてありましたが、これは許可を 取らなくてはと思い、書き込みをしました次第です。 配布してもよろしいでしょうか? |
無償配布ならば (メディア代などは受け取っていいです)、 プログラムの再配布・改変はご自由にどうぞ。 ちゃんと決めないといた方がいいかなぁ。とりあえず GNU の 精神を尊重して、GPL チックに扱っていただけると うれしいです (いいかげんだなぁ)。 |
テステス。曜日を直したつもり。すいませんが、また cookie が クリアされてるかもしれません。 |
68user様 配布の許可ありがとうございます。 GNUの精神を尊重して、GPLチックに扱わせていただきます。 これからGNUとGPLを調べなきゃ。 本当にありがとうございました。 |
お久しぶりです。 前回、公開しないと言ってしまいましたが、virtual host対応にして、外部フィルタを 使用できるようにしたので、公開したいかと存じます(実はヘブライ語が表示できたので、 嬉しくって嬉しくって仕方が無い←68user様のおかげです、ありがとうございます)。 現在、 http://henika.virutalave.net/japanese/proxy.htm で、仮公開(どこからも linkしていない)しています。 正式な公開(linkを僕のサイトから張る)に先立ち、説明の書き方等で問題があるか どうか、是非ともご確認して頂きたいと存じます。お手数ですが、宜しくお願い 致します。いつになるか分かりませんが、同じような文面で、他言語にも翻訳しようかな、 とも、もくろんでいます。 因みに、 1)正規表現が分かってない and/or 恥ずかしいなぁ。 2)よっくもまぁ、ここまで支離滅裂に改造したなぁ。 3)たまに再起動しないと、clientからの新しいrequestを受け付けてくれない。 4)clientからのrequestが増えると、clientはrequestした状態で停止したように なってしまうらしく、proxyのlogを見ると、clientからrequestされているはずの URIがrequestされていない(Netscape Navigator 4.04[ja]で確認)。 5)変数名を短く、しかも4tabにしました。 6)日本語で掲示板に書き込む際には、その掲示板がjcode.plなどで日本語を処理して いないと、文字化けする可能性がある(だから、先ほどview-script.cgiで中身を確認 しようとしたのですが、失敗したので、やむをえず、MSIEで書き込んでいます)。 という、特徴があります。 追伸: 68user様の掲示板、cookieはクリアされてないみたいです。 あと、曜日は、以前のbugがあったままのほうが、嬉しいです・・・ |
タイプミスしました。 誤 : やむをえず、MSIEで ↓ 正 : やむをえず、proxyを経由しないで すみません・・・ |
すいません、ちょっとお聞きしたいのですが、viの設定はどこでどのように すればよいのですか?今の設定では画面の半分くらいまでしか文字が表示さ れないのですが。 ちなみにテラタームでそのマシンにつなぎに行ってます。 |
>68users様 以前配布の許可について質問させていただきました薩摩です。 このたびホームページを開設したしましたので、 展示しているスクリプトについてご意見を伺えると 幸いです。 よろしくお願いします。 http://koten.hypermart.net/ |
> 正式な公開(linkを僕のサイトから張る)に先立ち、説明の書き方等で問題があるか > どうか、是非ともご確認して頂きたいと存じます。 別に問題ないです (特に確認を求める必要はないですよ。念のため)。 時間がないので、すいませんがスクリプトは読んでません。 > http://koten.hypermart.net/ うちの NN4.61 で見ると、何も表示されないです。 > 今の設定では画面の半分くらいまでしか文字が > 表示されないのですが。 環境変数 TERM で何とかなりませんか。env TERM=cons25 vi とか env TERM=VT100 vi とか。あるいは TeraTerm の設定かも しれませんが、使ってないので詳しくはわかりません。 |
68user様; どうもありがとうございます。では、近日中に公開いたします。 ハリー様; ウィンドウサイズの縦が50行くらいで半分くらいになっているなら、 以下の方法がよいかもしれません。うまくいかなかったらすみません。 Setup->Terminalで、開いた画面で、 Terminal sizeのTerm size=win sizeのチェックボックスにチェック すると、うまくいきませんか? 因みに、Tera Term Pro version 2.3です。 僕は、これでうまくいっています(環境変数は特に設定していなかった ような気がします)。 |
>68users様 大変申し訳ございません。僕はIE5を使っているのですが、 見れていたので問題ないと思っていました。 自分自身の未熟さを知りました。すみません。 少し手直しをしたのですが、見れますでしょうか? http://koten.hypermart.net/ |
> 少し手直しをしたのですが、見れますでしょうか? 見られました。 個人的な意見ですが、串や鯖などの言葉は好きになれません。 もちろん薩摩さんのページですので、どういう言葉を使うかは 薩摩さんの自由なんですが。 # スクリプト自体に関する感想でなくてすいません。 |
トップページの 他では役に立たないスクリプト&ファイル が全て 500 エラーで見られないんです。 申しわけありませんが直して頂ければ... |
68user様 >見られました。 ありがとうございます。 >個人的な意見ですが、串や鯖などの言葉は好きになれません。 >もちろん薩摩さんのページですので、どういう言葉を使うかは >薩摩さんの自由なんですが。 いえいえ、私の方こそ気分を害させてしまいまして、すみませんでした。 本来ならば、来ていただけるだけでも光栄でしたのに、 このようなことになってしまい、私も反省しています。 こういった言葉を使うことがあまりよくないということが わかりました。勉強になりました。 ># スクリプト自体に関する感想でなくてすいません。 言葉の方も、手直しいたしましたので、今度来ていただける 機会がありましたときにお願いします。 それまで僕も精進して少しでも68user様に追いつけるように なりたいです。 本当にありがとうございました。そして、すみませんでした。 |
> トップページの 他では役に立たないスクリプト&ファイル が全て > 500 エラーで見られないんです。 ご報告ありがとうございます。直しました。 |
はじめまして。 いつも参考にさせていただいています。 いきなりな質問でなんなんですが、私は現在PerlでのWebオートパイロット スクリプトを開発中でして、ちょっとお聞きしたいことがあります。 作業ディレクトリが./として、ダウンロードしてきたファイルを ./dir/fileに保存しようとしたとき、open(FH, ">./dir/file") ではdieしてしまうんです。 原因は./dirが無いからだ、というのは分かるんですが、ではその都度 mkdirしていかないとだめなんでしょうか? このmkdirも当方の環境がWindowsのせいかうまくいきません。 `md dir`とかは汎用性が著しく無くなるので避けたいです。 打開策があるなら是非ご教示ください。 上でも少し触れましたが、当方の環境はWindows98+ActivePerlです。 |
> ではその都度 mkdirしていかないとだめなんでしょうか? そうです。 > このmkdirも当方の環境がWindowsのせいかうまくいきません。 Windows で mkdir が失敗するとは初耳ですが、本当でしょうか? どういう風に書いてるんですか? # Windows + perl の環境がないので試せませんが。 それはそれとして、perl5 なら深い階層のディレクトリを 一発で mkdir してくれる File::Path という標準モジュールが あります。詳しくは perldoc File::Path で。 |
> Windows で mkdir が失敗するとは初耳ですが、本当でしょうか? > どういう風に書いてるんですか? 申し訳ありません、気を取り直してもう一度試してみるとうまくいきました(^^; と言うかmkdirで失敗する現象が再現しません。 またWindowsのファジーさにやられた気がする・・・ お騒がせしました。 一応、 mkdir "./dir", 0604; と言う感じで書いてます。 以前はエラーメッセージは出ないものの、ディレクトリが作成されていない と言うような状況でした。 > それはそれとして、perl5 なら深い階層のディレクトリを > 一発で mkdir してくれる File::Path という標準モジュールが おぉ、見てみます。 ありがとうございます。 と、言うわけで、失礼しました。 |
先日はジンソクな対応ありがとうございました。 grep について質問なのですが、analog で apache のログを解析するとき /member/ 以下が邪魔なので grep などにて `/member/' の文字が入った行を 取り除きたいのです。が、マヌアルを見てもそれらしきオプションが見当たりません。 もしなにか方法があったら教えてくださいませ。 |
grep -v /member/ filename でいいですか? |
> grep -v /member/ filename あ〜〜〜〜できましたわぁ〜〜感謝感激 よく読んでなかったですね… ありがとうございましたー |
はじめまして。 「他では役に立たないスクリプト&ファイル」のうち、 nslookup.cgiは、他の方のものと比べ複数入力が可能な点でいいなと思い、 何とかこちらの環境でも使えるように試行錯誤したのですが、 結果表示の際に「ホスト名」「IPアドレス」と表示されるべき部分が、 うまく表示できません(ナカグロ=黒点になる→文字化け?)。 実質的な実りの部分は全然問題ないのですが。 ソース中、put_data のサブルチに渡している引数だと思いますが、 $desc のローカル変数部分の文字化けが絡むのでしょうか。 Windowsの環境でメモ帳などでつくるため、nkfのオプションは -s に しました。nkfより遅いと言われる jcode.pl も試しましたが不発でした。 あるいはやり方(書き方)が間違っているのでしょうか、 何かアドバイスをいただければ幸いです。 |
> 結果表示の際に「ホスト名」「IPアドレス」と表示されるべき > 部分が、うまく表示できません 余計な部分をどんどんコメントアウトしていって、 実質 print "ホスト名\nIPアドレス" だけのスクリプトに しても化けますか? またヘッダを Content-type: text/html; charset=Shift_JIS Content-type: text/html; charset=ISO-2022-JP などと出力して、ブラウザに明示的に文字コードを伝えても ダメですか? それでもダメならソースそのものを見せて下さい。 # どこかにそのまま置いてもらえると、文字コードなどが # わかるので調べやすいです。 > $desc のローカル変数部分の文字化けが絡むのでしょうか。 ということはないと思います。 > Windowsの環境でメモ帳などでつくるため、nkfのオプションは > -s にしました。 nkf は、CGI の出力を JIS にするために使っているだけです。 ・スクリプトを SJIS にして、出力も SJIS ・スクリプトを EUC にして、出力も EUC などという場合は、nkf は不要です。 |
はじめまして、yujiといいます。 たびたび参考にさせていただいています。(^^) アクセス状況チェックでは、1時間おきに更新されていますが、 これは、どのようにして定期的にプログラムを 実行させているのでしょうか? サーバー上では、cronが利用できると思うのですが、 プロバイダのほうで提供されてたりするのでしょうか。 それとも他のサーバー上で実行されているのでしょうか。 あと、linux上でPerlを書いているのですが、 LANカードとPPP接続を行った場合に、gethostbyname, inet_ntoa(inet_aton())のどちらを使ってもLANカードの アドレスが取得されてしまうのですが、 PPP接続のアドレスを取得する方法というのは、なにか ありますでしょうか? ifconfigでpppの部分だけ切り出そうかとも思ったのですが、 exec('ifconfig''); の出力をどうやって拾うのかがわかりません。(^^; なにかアドバイスなどありましたら、どうぞよろしくお願いします。 |
> アクセス状況チェックでは、1時間おきに更新されていますが、 cron でやってます。 http://X68000.startshop.co.jp/~68user/cgi-bin/view-script.cgi/.crontab のようなファイルを % crontab ~/.crontab として設定します。 > LANカードのアドレスが取得されてしまうのですが、 外部にソケットで接続して、getsockname で取得できるませんか? (試してません) > exec('ifconfig''); Linux の ifconfig がどういう出力をするのかわからないのですが、 open(IN,"ifconfig |"); while (<IN>){ if ( m/ppp.*(\d+\.\d+\.\d+\.\d+\)/ ){ $ip = $1; } } close(IN); という感じでしょうか。 |
お返事、どうもです。(^^) そうなんですか。>cron ちなみに、cronは、 どこのプロバイダでも利用できるものなんでしょうか? telnetができるところなどに限定されるんでしょうか。 >%crontab ~/.crontab 外部に接続すると、そのソケットのアドレスは、 グローバルなIPアドレスでないと困りますから、 それをgetsocknameで取得するということですよね。 ばっちりでした。(^^) Linuxのifconfigは、 (略 lo eth0など) ppp0 Link encap:Point-to-Point Protocol inet addr:*.*.* P-t-P:*.*.*.* (略) のようなカタチでして、水平タブなどを取り除いて、 .*?の最小マッチングを試してみたところ、取得できました。 外部コマンドの出力は、パイプを利用して取得すると。(メモメモ) 長くなってすいません。(^^; 今後とも、どうぞよろしくお願いします。 |
> ちなみに、cronは、どこのプロバイダでも利用できるものなんでしょうか? 普通の UNIX なら、おそらく使えます。ただし、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=73 のように、cron を使えないようにしているプロバイダもあります。なお、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=74 では、ソースをコンパイルすれば使えるかのような発言をしてますが、 ソースをコンパイルしても無理です。 # /var/cron をいじるために、root の権限で suid を # 立てなければいけないので。 > telnetができるところなどに限定されるんでしょうか。 そう思って下さい。crontab コマンド自体が使えるなら CGI や ~/.forward 経由でできるかもしれませんが、管理者に断らず 勝手にやるのはお勧めしません。 # CGI が nobody 権限で動いているサーバなら、nobody 権限で # cron のデータが設定されるわけで。 |
unixで、sqlファイルを開き、中のコードを見れる状態にしただけでは、 書きこみモードにしない限り、 SQL文の書きこみ、変更はできないようになっているのでしょうか? |
HP-UX9.06の内蔵HD(/ディスク)がfsckに引っ掛かってしまい、 立ち上がらない現象が発生しています。 ついては、CD-ROMからブートして上記HDをfsckに掛ける必要があるかと 思われますが。 そこで、実際にどのメディアを使い、どのような操作をすべきか 教えて下さい! |
> ブラウザに明示的に文字コードを伝えても > ダメですか? それでもダメならソースそのものを見せて下さい。 > # どこかにそのまま置いてもらえると、文字コードなどが > # わかるので調べやすいです。 ヘッダ対策はしてたのですが。 ご迷惑をおかけしますが、ソースをアップしてみましたので、 ご覧いただけますか。 http://www.hatsumei.psiweb.com/IPconvert_3.cgi.txt > nkf は、CGI の出力を JIS にするために使っているだけです。 > ・スクリプトを SJIS にして、出力も SJIS > ・スクリプトを EUC にして、出力も EUC > などという場合は、nkf は不要です。 知識不足でお恥ずかしいです。勉強になりました。 |
すいません。アドレス間違えました。 正 → http://www.hatsumei.ab.psiweb.com/IPconvert_3.cgi.txt |
http://www.wakusei.ne.jp/twn/lng/red/wwwlng.cgi?show+200005/00050026.txt と同じですかね。SJIS の全角空白の2バイト目が @ のコードと同じなので、 print " $desc = $after<br>\n"; で化けているんでしょう。例えば、SJIS で @a=(1,2,3); print " a"; とすると、@a と書いてないのに 1 2 3 と表示されるはずです。 対策としては、スクリプトを EUC にするか、 print ' '; # 全角空白2つ print "$desc = $after<br>\n"; がお手軽でしょうか。 > HP-UX9.06の内蔵HD(/ディスク)がfsckに引っ掛かってしまい、 > SQL文の書きこみ、変更はできないようになっているのでしょうか? HP-UX も SQL も使ったことがないので わからないです。 |
68user様。 やはり文字化けでしたか、ありがとうございました。 SJIS での一部の漢字と @ の文字化けは知ってましたが、 全角空白2つでも化けるとは知りませんでした。 教えていただいた「対策」もいいと思いましたが、 print " \ $desc = $after<br>\n"; と、全角空白の一つ目と二つ目の間に、 エスケープ用にメタキャラクタ \ を置いてみると ソース的にすっきりするかなと思い、 やってみたらこれでうまく表示されました。 いやぁ、とほほさんのところも覗いてきましたが、 漢字コードひとつとっても、奥深いですね。 ほんとにお世話になりました。ありがとうございました。 |
別に全角空白が2個だからまずいわけではなく、 \x81 @ $ d e s c となるので、@$desc という配列 (シンボリックリファレンス) を表示しようとしているのでしょうから、 > 全角空白の一つ目と二つ目の間に、エスケープ用に > メタキャラクタ \ を置いてみると で本当にうまくいくのか疑問です。確かでしょうか? それとも jperl だからうまくいく、ということでしょうか。 なお、FreeBSD+perl5.00503 では $desc = 'abc'; print " \ $desc\n"; ではダメでした。 |
> で本当にうまくいくのか疑問です。確かでしょうか? 再度確認しましたら、文字化けはしていないのですが、 インデント、つまり空白2文字分の字下げはうまくいっていませんでした。 その分が、つめられて行頭に配置されます。 > それとも jperl だからうまくいく、ということでしょうか。 ローカルでなく、プロバイダの Appacheサーバ上ではありますが。 でも、疑問が。 > print ' '; # 全角空白2つ > print "$desc = $after<br>\n"; これでやってみましたが、syntax errorを返してきました。 上の2行目が next token ??? なのだそうです。 エンジンで検索してみましたが、意味がわかりませんでした。 セミコロンは打ってるし・・・。 |
はじめまして。 ヘルツォークで検索したら、貴サイトにたどりつきました。 最近私はヘルツォークツヴァイのようなゲームを 自作してみようという主旨のサイトをつくりました。 まだ内容はないのですが、よかったら見て下さい。 トップページから最強の敵を創造る会へどうぞ。 メイリングリストも参加募集中です。 プログラミング好きの方でツヴァイ好きの方、 共にヘルツォークの続編(みたいなもの)を作りませんか。 |
> インデント、つまり空白2文字分の字下げはうまくいっていませんでした。 半角空白になってませんか? > これでやってみましたが、syntax errorを返してきました。 > 上の2行目が next token ??? なのだそうです。 タイプミスだと思いますが、直らなければ再度 どこかに置いて、見せて下さい。 > 最近私はヘルツォークツヴァイのようなゲームを > 自作してみようという主旨のサイトをつくりました。 ゲームをやらないのでよくわかりませんが、最強の 思考ルーチンを作ろう的なページですか。いろんな 思考ルーチン同士を戦わせると面白そうですね。 昔 I/O でそういう記事があったっけなぁ。 |
どうも、yujiです。(^^) 今、いろいろなサーバーにアクセスして、 HTMLファイルをダウンロードするというプログラムを作成しているのですが、その中にダウンしていると思われるサーバーなどが ありますと、そこで処理が中断されてしまいます。 そこで、タイムアウト処理のようなものを実装して、 ある程度経過してもダウンロードできないようなら、 次のURLに進むようにしたいと考えています。 こういった場合、どのようにして、 タイムアウト処理を実装したらよいのでしょうか? forkなどで子プロセスを作成するのでしょうか。 アドバイスなどありましたら、どうぞよろしくお願いします。(^^) |
fork するなら、子プロセスで $SIG{ALRM} = \&timed_out; sub timed_out { die 'TIMED OUT'; } alarm(10); while (<SOCKET>){ print $_; } alarm(0); などとすればいいでしょう。また、die したくなければ $SIG{ALRM} = \&timed_out; sub timed_out { die 'TIMED OUT'; } eval { alarm(10); $buf=<SOCKET>; alarm(0); } if ( $@ =~ /TIMED OUT/ ){ タイムアウトになった } と eval で囲めばよいです。 4引数 select を使う方法もありますが、gethostbyname や connect で時間がかかると対応できません。 # connect はノンブロッキング IO を使う方法がある。 並行して gethostbyname するにはどうしたらいいのかなぁ? |
すばやいお返事とサンプルコード、 ありがとうございます。 $SIG{ALRM}とevalを用いることで、 うまくできました。(^^) DNSサーバーエラーなどで、 connectで時間がかかる場合があるということで、 connectと<SOCKET>の部分をalarmで 囲むカタチで利用させていただきました。 connectの部分については、 最初にIO::SocketのTimeoutを指定してみたのですが、 うまくいきませんでしたので。(^^; $SIG{ALRM}=\&timed_out;の\は大切なのですね。 意味合いについて、調べてみたいと思います。 今後とも、よろしくお願いします。(^^) |
68user様、遅ればせながら、 >> インデント、つまり空白2文字分の字下げはうまくいっていませんでした。 > 半角空白になってませんか? どうやら、そのようでした。 ただ、ウインドウズ環境のテキストエディタでは、 全角空白というのが打ちにくいように思いました。 半角空白二つならべて、それで同じかなんて思ってました。 私の知識不足なのかもしれませんが。 ちなみに、下のように書いて、やっとインデントができました。 print ' '."$desc = $after<br>\n"; |
> 半角空白二つならべて、それで同じかなんて思ってました。 半角空白を2つ並べてもブラウザに反映されないのは、 perl とは全く関係なくて、出力しているのが HTML だからです。 HTML 的に言えば で空白を表現する方がいいでしょう。 わかっておられるかもしれませんが、念のため。 |
どうも、yujiです。(^^) Web上でアカウント発行がいろいろなところで行われていますが、 いたずら防止などもあり、入力したメールアドレスに、 登録内容の確認のメールを送って、再度返信してもらうなど さまざまな方法がありますが、こういったプログラムは、 どのような仕組みになっているのでしょうか? かなり漠然とした質問で申し訳ないですが、(^^; なにかご存知でしたら、どうぞよろしくお願いします。 |
0. メールが返ってきたらメール処理プログラムが実行されるよう、 ~/.forward で設定しておく 1. CGI でメールアドレスを入力してもらう。 適当なファイルにメールアドレスを記録して、メール送信 この時点で CGI プログラムは終了。 2. 訪問者がメールを受け取り、再度返送 3. メールが届き、~/.forward で設定したプログラムが実行される 記録しておいたメールアドレスと照合して、正しければ OK。 …てな感じでしょうか。 |
またまたすばやいお返事、どうもです。(^^) なるほど。>0,1,2,3 ~/.forwardについては、初耳でして、勉強になります。 あと、メールのヘッダやフッタに自動的に広告などをいれている メールを見かけますが、ああいうものは、 どういったカタチで実現しているんでしょうか? CGIなどを使って、というカタチでしょうか。 |
こんばんは。某ラウンジで何度かお世話になりました。 さて、さっそく質問なのですが、ファイルマウントについて教えてください。サーバを一台まるごと借りたはいいのですが、なかなかUNIXが理解できずにいます。 /etc/fstabの中身は一部次のようになっています。 /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /var ext2 defaults 1 2 /dev/hda3 swap swap defaults 0 0 この/dev/hda2を/homeにし、/varは/dev/hda1内に移したいのですが、果たしてできるのでしょうか。ハードディスクのフォーマットなどをしないで行ないたいのですが。/varを一瞬でも消せればいいのですが、/varの中は常駐プログラムなどが収まっているので無理なように思えます。回線経由ですので、telnetなどは起動したままでなければいけません。 ちなみにOSはTurboLinux Server 1.0Jです。何かいいアイディアや参考になるウェブサイト・本があればご教示ください。情報が足りなければご指摘ください。 |
> この/dev/hda2を/homeにし、/varは/dev/hda1内に移したいのですが、 > 果たしてできるのでしょうか。 できなくはないでしょうが、かなり怖い作業ですね。 特にリモートでの作業になってしまう、というのが。 1. cd /var 2. シングルユーザモードに移行 3. 不必要なプロセスを全て殺す 4. /etc/fstab から /var のエントリを削除 5. mkdir /newvar 6. cd /var; tar zcvf - . | (cd /newvar; tar zxvfp -) 7. mv /var /oldvar 8. mv /newvar /var 9. システムをリブート かなぁ。7 から 8 の間で、/var 以下のファイルをオープンしようと するプロセスがあれば、その動作は失敗します。また、(おそらく) 最初に /var 以下のオープンしているプロセスは、7 を行っても 引続き /oldvar 以下のファイルをオープンし続けているので、 最後にリブートが必要です。 /home については、上の作業をした後、 A. シングルユーザモードに移行 B. /etc/fstab に /dev/hda2 /home ext2 なエントリを追加 C. /dev/hda2 を /newhome としてマウント D. rm -rf /newhome/* (フォーマット。newfs を使った方がよいけど) E. cd /home; tar zcvf - . | (cd /newhome; tar zxvfp -) F. mv /home /oldhome G. リブート H. rm -rf /oldhome でしょうか。 僕は Linux を触ったことがないので、コマンド名やオプションが Linux でも通用するかどうかはわかりません。事前に十分シミュ レーションしてから行って下さい。できれば Linux-users-jp や fj などで、 「…という作業手順でいのでしょうか?」 と質問した方がよいと思います。 # もし「それではうまくいかない」「こうすれば簡単だ」という回答を # もらったら、僕にも教えて下さい :-) なお、上記の通りにやってうまくいくかどうかは保証できません。 > あと、メールのヘッダやフッタに自動的に広告などをいれている > メールを見かけますが、ああいうものは、 > どういったカタチで実現しているんでしょうか? > CGIなどを使って、というカタチでしょうか。 CGI は web の仕組みであって、メールとは全く関係ありません。 # web 上でボタンを押すとそういうメールが送られる、 # というなら関係ありますけど。 確か、そういう機能を持ったメーリングリストプログラムが あったように思いますし、常に一箇所からしかメールが発信 されないなら、その部分でヘッダやフッタを追加してもいいです。 |