68user's page 掲示板

Prev< No. 265〜330> Next  [最新発言に戻る] [過去ログ一覧]
No. 265 # 68user 1999/04/14 (水) 01:38
> さらっとNet.Pmを見た限りでは
Net/Ping.Pm の間違いですね。で、ちーと試してみました。結論から言うと、
    use Net::Ping;
    $p = Net::Ping->new("icmp",$timeout);
    $p->ping($hostname);
ですかね。でも、root権限が必要です。Ping.Pm の
    croak("icmp ping requires root privilege") if $>;
を外せば、一般ユーザ権限でもいけるかも(試してません)。

No. 266 # M.Masuda 1999/04/14 (水) 14:34
>リャマ本って、「プログラミングPerl改訂版」ですよね?
すいません誤解を招くような書き方をして(^^;
そうです「プログラミングPerl改訂版」を指しています。
他でそのような表現があったので、安易に使ってしまいましたが
>ラクダ本じゃなくてリャマ本が正式名(というか通称)なんですか?
私も正式には不明です。
#ラウンジで聞いてみようかな...

> croak("icmp ping requires root privilege") if $>;
> を外せば、一般ユーザ権限でもいけるかも(試してません)。
そうですか、確かに icmp ping requires root privilege
と言われました。
suidや、Ping.pmを編集する事まではしたくないのです。

やはり「なんだこんな便利なものがあるじゃないの!」の認識は
ちょっと甘かった様ですね。

一発での`ping -c1 $hostname`とararmの方法はわかりますので、CGI単体
で行おうとせず他の方法を組み合わせて試してみます。

ちなみにあのスクリプトの目的は、普通のサーバーではなくダイアルアップ
サーバー?(プロバイダーでユーザーの電話回線経由の接続を受け取るヤツです)
が生きてるかどうか、つまり一般的にいうPPPxxx.domain.ne.jpとかが
接続状態かどうかを調べるツールを作ろうとして、そのための動作確認
用の試験スクリプトでした。

>http://X68000.startshop.co.jp/~68user/net/echo-1.html
これからの課題なので勉強します。

それから、ちょっと違うとは思いますがBASICの場合でいう割り込み処理から
復帰する際のリジュームコマンドの様な事はできないのでしょうか。
つまりラベル等で復帰先の指定をするという事です。
最初がBASICだったものでこういう表現しかできませんが、68Userさんがその
辺(BASIC)詳しくなければ無視してください。

ありがとうございました。

No. 267 # 68user 1999/04/14 (水) 23:38
> 一般ユーザ権限でもいけるかも(試してません)。
/sbin/ping もsuidされてるので、ICMPをしゃべるにはroot権限が
必要なんじゃないでしょうか。だから多分コメントアウトしても
ダメだと思います(未確認ですけど)。

> つまりラベル等で復帰先の指定をするという事です。
んー、gotoとかですか? Perlでは、ほとんどgoto文を使う必要は
ないと思うのですが。他の方法で代用できませんか?
# alarmのシグナルハンドラからの復帰先を指定したいとか?

No. 268 # M.Masuda 1999/04/15 (木) 15:31
>/sbin/ping もsuidされてるので
本当ですね。今まで気づかず使っていたみたいです...
#mount等がそうなのは分かりますが。ICMPをしゃべる事自体
#root権限が必要なのだろうか?無駄なトラフィックを避ける為?

> alarmのシグナルハンドラからの復帰先を指定したいとか?
はい、まったくそのとおりです。
#やっぱ表現力足りないみたい>自分
gotoは68Userさんと同じ理由で使うつもりは有りません。

ラクダ本でのalarmの解説が、私にとっては不十分なので上記の
方法があるのかさえ分かりません。
#シェルスクリプトでも同様の方法があるのでしょうか?

またこういう処理をする時に定石の様なものは有りますでしょうか。
あれば簡単でも教えてもらえれば助かります。

No. 269 # 68user 1999/04/16 (金) 03:05
> またこういう処理をする時に定石の様なものは有りますでしょうか。
定石かどうかはわかりませんが、
    sub alarm_handler {
        # ここに処理がきたということは、2秒以内にpingが終了しなかったということ
        # なので子プロセスを殺す。
        kill 1,$child_pid;
        $flg = 0;
    }
    $SIG{ALRM}=\&alarm_handler;
    $flg = 1;
    if ( $child_pid = fork ){ # 親
        alarm 2; # 2秒後にalarmセット
        wait;  # 子プロセスの終了を待つ
        alarm 0; # 2秒以内に終ったら、alarm解除
    } else {  # 子
        exec "ping -c 1 host";
    }
    if ( $flg == 1 ){ ping成功 }

とか。本来はもっと賢い方法があるのかもしれませんね。
子プロセスの始末まで考えなくていいなら、
    sub alarm_handler { $flg = 0; }
    $flg = 1;
    if ( fork ){
        alarm 2; sleep 4;
    } else {
        exec "ping -c 1 host";
    }
    if ( $flg == 1 ){ ping成功 }
でもいいかも。

No. 270 # M.Masuda 1999/04/16 (金) 15:31
サンプルまで書いてもらってありがとうございます。
自分で書いたスクリプトも、ほとんど同じような事をして、
さらに引数で秒数を指定できる様にしてあります。
#もっともこんなスマートには書いてないですが(^^;

>子プロセスの始末まで考えなくていいなら、
自分のスクリプトではこの部分の処理まではしていません。
試験時にスクリプト実行後(シェル、web経由)にpsで確認しても
プロセスが残る事はなかったので。
シェルやアパッチがこの辺の処理はやってくれると思っています。
#そう思いたいってのが本音。

スマートなスクリプトの為の勉強になりました。
いつもありがとうございます。

No. 271 # ono hirosi [E-mail] 1999/04/16 (金) 16:37
初めまして。
HTTPについてのページを読ませていただきました。
telnetでHTTPに接続できるとは思いもよりませんでした。
そこで、質問があるのですが、cookieを送信するときは、
どのようにすればよいのでしょうか?おしえてください。

No. 272 # 68user 1999/04/17 (土) 12:27
> cookieを送信するときは どのようにすればよいのでしょうか?
送信するだけなら、
    Cookie: hoge=fuga
などとします。
    % telnet www.cs.gunma-u.ac.jp 80
    GET /~j5306050/cgi-bin/printenv.cgi HTTP/1.0
    host: www.cs.gunma-u.ac.jp
    Cookie: hoge=fuga
てな感じ。そしたら printenv.cgi の中では
    $ENV{HTTP_COOKIE} eq 'hoge=fuga'
となります。

> 試験時にスクリプト実行後(シェル、web経由)にpsで確認しても
> プロセスが残る事はなかったので。
たしかに、親プロセスが死ぬ(終了も含む)と子プロセスには
SIGTERM(だったかな?)が送られますので、普通は特に後始末を
する必要はないです。

もちろん子プロセスがシグナルをブロックしていたら
その限りではありませんけど。

No. 273 # ono hirosi 1999/04/19 (月) 10:06
どうもありがとうございました。
netscapeはちょっと重いので、簡易ブラウザーを作ってみようかと
考えています。

No. 274 # 3年@群大情報 1999/04/21 (水) 13:55
端末のネットスケープで日本語入力をしたいのですが
いつもemacsで書いてカットアンドペーストをしています。
ダイレクトに入力することはできないのですか?

No. 275 # 68user 1999/04/21 (水) 17:17
kinput2を立ち上げて、NN/NC上のテキスト入力エリアで、
Shift+Spaceで変換モードONだったような気がします。

kinput2 は .xsessionの中で起動すると楽です。

No. 276 # R-N [URL] 1999/04/24 (土) 03:05
ども、こんばんわ。
今、初めて1から CGI を書いているのですが、
そこでちょっと質問が...。

JPERL でチェックした所、問題なく動いた(様に思う)のですが、
アップロードしてパーミッションを変更しても、お約束の
「Internal Server Error」がでます。

68user さんはエラーチェックなどはどうやってますか?

No. 277 # 68user 1999/04/24 (土) 07:03
> 68user さんはエラーチェックなどはどうやってますか?
    1. サーバのログ(/var/log/httpd-error.logなど)を見る。
    2. コマンドラインで実行。
    3. 思い当ったところをいろいろ変えてみる。
            3-1. 環境変数(PATHなど)
            3-2. スクリプトの文字コード(EUC or SJIS)
            3-3. 実行権限(nobody権限で動くかどうか)
    4. http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1999-03-26
                68user 1999/03/29(月) 16:11
                一般的には、以下のの方法でデバッグすると、大抵の場合解決すると思います。
         で説明したスクリプトをかまして実行。
    5. 怪しいところから順にコメントアウト。もし動いたら、直前にコメントアウトした
         部分がおかしい。

てな感じでしょうか。実際にやったことがあるのは1〜3くらいです。


あとさ gunma-u の方、質問して回答をもらったら、それに対する
返事くらい書いてね。「わかりました」「やってみたけどうまく
いきませんでした」くらいでいいから。それが最低限の礼儀だと
思います。それが嫌なら trouble@cs.gunma-u.ac.jp に質問して下さい。
# 別に gunma-u に限ったことではないけどね。

No. 278 # 68user 1999/04/24 (土) 07:12
当然のことですが、念のため補足を。
> それが嫌なら trouble@cs.gunma-u.ac.jp に質問して下さい。
trouble宛なら返事出さなくていい、ってわけじゃないです。

No. 279 # R-N 1999/04/26 (月) 02:02
はい、わかりました。
「ありがとうございます、うまくいきました」と書けば良かったですね。
本を見ながら初めて頭から書いたので多分色々不都合やら効率が悪い所やら
あるんでしょうが、これから一個一個潰していきます。
でわ、また御礼か泣きつきに来ます。(^_^;
毎度毎度、ありがとうございます。

No. 280 # 氷聖 1999/04/26 (月) 15:32
はじめまして,こんにちは.
つい1週間ほど前にFreeBSDに手を出した者です.
さっぱり解らないので色々と探してここにたどり着きました.
”UNIXのお部屋”は大変参考になりますね.すごく重宝します.
また何か解らないことがあったらこちらに伺おうと思っているので
その時は何卒よろしくお願いします.

No. 281 # 68user 1999/04/26 (月) 23:03
どもども。今後ともよろしくです。

表現がわかりにくい/構成が悪い部分があったら教えて下さいね。
どうも肥大化しすぎて、どこをどうすれば利用しやすくなるのか
わからなくなってしまいましたので。

No. 282 # R-N 1999/04/30 (金) 00:35
たぶん完成しました。(^_^;
http://www.raidway.ne.jp/~nouveau/dc/sh/
に置く、race.htmlとrrr.cgiです。(cgiはrrr.txtにしておいてあります)
どんなもんでしょう?
wrapperが非常に役に立ちました、ありがとうございます。

ところでハッシュというものは一時的にでも並べ替えは出来ないんですね。
代入した数値順での並べ替えでずっと詰まってました...。

No. 283 # 68user 1999/04/30 (金) 01:20
> http://www.raidway.ne.jp/~nouveau/dc/sh/
> に置く、race.htmlとrrr.cgiです。(cgiはrrr.txtにしておいてあります)

では拝見…と思ったら not found。
どこにあるんでせう?

> 代入した数値順での並べ替えでずっと詰まってました...。
毎回ソートする必要がありますね。解決されたようですが、
一応書いておくと、キーを数字順でソートしたいなら
    foreach ( sort {$a<=>$b} keys %hash ){ print "$_ $hash{$_}\n"; }
値を数字順でソートなら
    foreach ( sort {$hash{$a} <=> $hash{$b}} keys %hash ){ print "$_ $hash{$_}\n"; }
文字としてソートなら <=> ではなく cmp、などなど。

No. 284 # R-N 1999/04/30 (金) 01:59
すみません、置く前に書いたんで...。
設置にも手間取ってたりしました、何故かエラーが...。

ハッシュの件は解決しなかったので処理が終わったら
別の変数に代入しちゃいました。
この辺はかなり無駄がありそうですし、エラーがあるなら
この周辺でしょう...。
むぅ、foreach ( sort〜ですか...、組み込めるかな...。(-_-;
お手数おかけしました。

No. 285 # 68user 1999/04/30 (金) 02:03
あ、見れた。で、気づいた事。

    - $monが0月〜11月になっちゃいませんか。

うーん、これくらいかなぁ。後はどーでもいいというか、些細な事というか、
好みの問題というか。

    - EOF は End Of File の略なので、EOTが適当…なんでしたっけ?
        (EOT=End Of Textのつもり)。
    - if ($... <10) { $... = "0..." } の羅列より、
            $now = sprintf("%4d/%02d/%02d ...",$year+1900,$mon+1,$mday,...)
        の方がすっきりするかも。

全体的に特に問題はないんじゃないでしょうか。

No. 286 # 68user 1999/04/30 (金) 02:16
後は
> ($dtm,$soft,$point,$reho) = split(/\,/, $data[0]);
($dtm,$soft,$point,$reho) = split(/,/, $data[0]);
> $temp = $now."\,".$FORM{'soft'}."\,".$FORM{'point'}."\,".$ureho."\n";
$temp = "$now,$FORM{'soft'},$FORM{'point'},$ureho\n";

くらいかなぁ。ほんとに細かいことですけど。

それからこれは根本的な問題ですが、FORMから渡される値をチェックして
ないので、変なのを入れられる可能性がありますね。旧SEGA BBSのように。

渡された値が適切かどうかを調べるのは(僕は)必須だと思います。

No. 287 # R-N 1999/04/30 (金) 03:46
あ、3月だ...、全然気付きませんでした。(-_-;
変な書き方してますね私、指摘されると自分でも思う...。
sprintfは便利ですね。でもなんで%02dの時だけ『0』が...。
私の持ってる本も%02dだけ0が付いてる...。

> FORMから渡される値をチェック...
とりあえず$ENV{'HTTP_REFERER'}のチェックを入れてみます。
って、コレだと投票できないブラウザがあったか...。<SSとか

全部の値をチェックするんだったら投票フォーム部分も組み込んだ方が
楽そうだし、そうしようかな...。<いづれ(^_^;

勉強になりました!

>変なのを入れられる可能性がありますね。旧SEGA BBSのように。
ギクッ!

No. 288 # 1111 1999/04/30 (金) 16:07
111111

No. 289 # 1111 1999/04/30 (金) 16:07
2222222

No. 290 # M.Masuda 1999/04/30 (金) 23:26
こんばんは。

Perlのreaddirでの現象でお聞きしたいのですが。
普通、以下の様な記述で@filesには、ディレクトリ内のファイル&
ディレクトリが入りますが、この配列の中に返される文字列の中に
複数のバイナリが混じるというのは、ディレクトリエントリが壊れ
ているのでしょうか。

opendir(DIR, "./");
@files = readdir(DIR);
closedir(DIR);

特にヌル(\x00)が多量に含まれます。
さらにこの状態のディレクトリを、他のディレクトリにコピー
した時に症状が引き継がれるのは、壊れていると仮定すると
親ディレクトリからの影響が出ているのでしょうか。

またこの症状が出るのは、nfs等で共有しているディレクトリです。
何か分かる事が有りましたら、よろしくお願いします。
ちなみに以下のスクリプトでは問題無く表示されます。
#!/usr/local/bin/perl
$|=1;
print "Content-type: text/plain\n\n";
$_ = system("ls -l ./ 2>&1");
print "$_\n";

No. 291 # 68user 1999/05/01 (土) 07:48
> でもなんで%02dの時だけ『0』が...。
要は桁合わせですな。
Ex. printf("%d,%4d,%04d\n",10,10,10);

> この配列の中に返される文字列の中に複数のバイナリが混じるというのは、
> ディレクトリエントリが壊れているのでしょうか。
うーん、どうなんでしょうねぇ。漢字のファイル名ってこともありますし、
バイナリが混じっているだけで壊れているとは言い切れないです。

> 特にヌル(\x00)が多量に含まれます。
ファイル名にヌルってありだったかなぁ…?

具体的な出力結果を見てみないことには、なんとも言いがたいです。

No. 292 # くにろぅ [E-mail] 1999/05/01 (土) 08:37
あ、しょうもないことかも知れませんが
emiclock の costumes で
Transparent dress (一番下のコスチューム)
を、どうやったら拝めるのでしょうか?

No. 293 # M.Masuda 1999/05/01 (土) 16:05
>漢字のファイル名
これは無いです。

本によると「システムによって保守されるディレクトリ構造の内容」
とあります。という事からエントリが壊れているのかと思った訳です。

しかし、意図的に壊してみることまではさすがにできないので、
困ってしまいました。

もう少し調べてみます。ありがとうございました。

No. 294 # 68user 1999/05/01 (土) 18:09
> Transparent dress (一番下のコスチューム)
> を、どうやったら拝めるのでしょうか?

あはははは。誰もが一度は思った疑問ですね。
僕も知らなかったんで調べてみました。

    1. 30分チャイムを鳴らす設定にする。
    2. alarmを....年............に.....。
    3. 30分チャイムが鳴るまで待つ(0分or30分)
    4. Costumesに…なんとアレが!

ちなみにオリジナルのMac版のドキュメントには以下の記述がありますなぁ。

> < ひとりごと >
> ある日、もとそふと探検隊は某秘境の洞窟の壁に書かれた落書きを発見した。 
> 壁には、「1958年10月24日06時33分」と落書きされていた。これ
> が、いったい何を意味するのかはわからない。
> 洞窟は、さらに奥へと続いていた。仲間と30分に待ち合わせることにして、
> チャイムをセットし、隊長はさらに奥へと進んだ。
> 30分を知らせるチャイムが鳴った。そのとき、隊長の顔は、笑顔に変わって
> いた。ついに秘宝を発見したのだ。


…で見れますか?

うちのemiclockは30分チャイムがなぜか選べないようになってるんですが…
なんでだろ。というわけでソースを1行書き換えて見てしまいました(^^;

No. 295 # 岩本 1999/05/10 (月) 18:40
大変お久しぶりです。岩本です。
とは言っても覚えている人はいないでしょうけどね(笑)

実はUNIXでお伺いしたいことがあります。
crontabでシェルを動かしたいのですがうまくいきません。
以前Masudaさんに「実行時に有効になっている環境変数を
表示させてみて・・・」のアドバイスを頂き、その通りやって
見たところ、確かに環境変数がほとんど指定されていませんでした。
そこで環境変数をスクリプト内で追加設定させたいのですが
どうすればよいのでしょうか。ちなみにスクリプトに
envやsetenvを使って自ユーザログオン時の環境変数を
設定させてみたところ結局実行時に変数は変わってませんでした。

OSはソラリス2.5、マシンはsun7の300です。
ご存知の方、お詳しい方がいらっしゃいましたら
よろしくお願いいたします。

No. 296 # 68user 1999/05/12 (水) 00:43
> そこで環境変数をスクリプト内で追加設定させたいのですが
> どうすればよいのでしょうか。
動かしたいものがshスクリプトなら、先頭付近に
    export HOGE=fuga
書くとか。cshスクリプトなら
    setenv HOGE fuga
てな感じでしょうか。

No. 297 # 岩本 1999/05/14 (金) 19:09
68userさん、ありがとうございました。
無事問題が解決しました。
今後ともよろしくお願いします。

No. 298 # REMAHL 1999/05/16 (日) 01:56
ども、はじめまして。パソコンスクランブルの方でこのページ
をターゲットにしてしまったREMAHLと申します。EUCとリンクフリー
という条件が重なったため、あちらの掲示板にてソースが化ける
例として取り上げさせていただきました。この度は大変失礼しました。

それからスクリプト2、3頂きました。CGI勉強中なので研究材料
として使わせていただきます。これからもよろしくお願いします。

No. 299 # 68user 1999/05/16 (日) 07:47
どもども。ああいう場合に他サイトを例に出すのは
僕もよくやることなので、お気になさらぬよう。

No. 300 # REMAHL 1999/05/17 (月) 23:46
>どもども。ああいう場合に他サイトを例に出すのは
>僕もよくやることなので、お気になさらぬよう。

お気遣い、有り難うございます。

つい最近CGIを始めたばかりなので「CGIの小部屋」は
私のような素人には非常に参考になります。今は人様の
作られたスクリプトを改造している程度なので、まだまだ
分からないことだらけです。もし分からなければこの掲示板で
質問を、と思っていますので、その時はよろしくお願いします。

No. 301 # pz [E-mail] 1999/05/18 (火) 17:48
始めまして。
掲示板を発見したので、感謝の言葉でもと思い書き込みました。
仕事中に壁にぶつかるといつもこのサイトをみて解決の手助けにしてます。
とても助かってます。
これからも宜しくお願いします。





No. 302 # しょいち [E-mail] 1999/05/18 (火) 20:33
こんにちは。
ためになる、きれいでわかりやすいページなので大変よろこんでいます。
(色使いなんかも目に優しくていいですね、コードなんかを白バックで
読むのなんて耐えられませんです ^_^;)
がんばって勉強させていただきます。
これからもがんばってください。

最高にクールです

No. 303 # 68user 1999/05/20 (木) 23:07
お褒めいただき、ありがとうございます>しょいちさん、pzさん

ただ、ここの記述がわかりにくいとか、このコマンドの
この機能が解説されていないなど、悪いところも書いて
いただけると なおうれしく思います。何かお気づきに
なりましたら、また書き込んでください。

No. 304 # hoppy 1999/05/27 (木) 19:59
はじめました、bsdのコマンドマニュアルとして重宝させてもらって
ます。ところで hello worldと一行書いてccでコンパイルしたら
a.outができましたが
./a.out と入力しないと動きません。
単純にa.outと入力して動かすにはどうしたらよいのですか?

No. 305 # 68user 1999/05/27 (木) 20:43
PATH に . を加えれば、カレントディレクトリのプログラムが実行されます。
しかし、セキュリティ上お勧めしません(共用のマシンなら特に)。例えば
    set path = ( . /bin /usr/bin /usr/local/bin )
とすれば a.out だけでも動きます。しかし、誰かが /tmp/ls に
    #!/bin/sh
    rm -rf ~
という内容のプログラムを置いていた場合、あなたが
    cd /tmp; ls
としただけで、あなたのホームディレクトリ以下のファイルは
全て消えます。

ですから、PATHには . は含めない方が賢明です。どうしてもというなら、
    set path = ( /bin /usr/bin /usr/local/bin . )
などと、最後に付け加えましょう(でもお勧めはしません)。

タイプがめんどくさいという理由なら、シェルの補完(Ctrl-DとかTAB)を
有効に使う方がいいと思います。

No. 306 # hoppy 1999/05/27 (木) 21:10
さっそくの解答thanksです
とりあえずset pathの最後に.を追加致します。
シェルの補完はよくわからないので、もう少ししたら
やってみます(^^ゞ

No. 307 # M.Masuda 1999/05/27 (木) 23:54
お久しぶりです。(^^;

やっぱ68Userさんは、プログラマー志望だったのですね。
#当り前と言えば当り前なのかもしれないですが...

ところで、BSDIというOSを知っていますか?
実はうちの環境にソレが入ったのですが、BSD系らしく作法が
少々異なっています。

なにか、知っていたら教えてください。
Linux系(SystmV系?)との操作上の違う所とか注意点とか。
#やっと日本語manを入れて少し分かりはじめたのにまた振り出し...

もちろん漠然と聞いているので、思い付いたような事でいいです。

hoppyさんへ
>シェルの補完はよくわからないので、
コマンドを途中までタイプして、タブキーを押すとうれしい事が
起こりますヨ!

No. 308 # 68user 1999/05/28 (金) 01:47
> やっぱ68Userさんは、プログラマー志望だったのですね。
いや、プログラマというわけでは…。どちらかと言えば、
プログラムを書けるSEかなぁ。

> ところで、BSDIというOSを知っていますか?
名前は知ってますが、使ったことはないです。
# 多分OS名はBSD/OSじゃないですかね。BSDIは会社名。
## ちなみに BSDIのBSDとFreeBSDのBSDは、意味が違います。
### ってことはどーでもいいですね(^^;

> Linux系(SystmV系?)との操作上の違う所とか注意点とか。
うーん、ps の引数の違いくらいしかわからないなぁ
    (Linuxのpsって、BSDともSysVとも少し違ったんだっけ?)。
あとはカーネルが /vmunix か(SysV)、/kernel か(BSD) とか…(ほんとか?)

あと、FreeBSDもLinuxもGNUのソフトをたくさん使ってますが、
BSD/OSがそこらへんを独自に作ってるなら、結構そこらへんで
はまるかもしれません。
# http://www.gnu.org/software/software.html のfileutils、shellutils、
# diffutils、GNUtarあたり。

あと、パッケージ管理(pkg_add/pkgadd)とかユーザ管理(adduser/useradd)
なんてのは各UNIXごとにバラバラなんで、ご注意を。

No. 309 # M.Masuda 1999/05/28 (金) 14:51
どもです(^^;
>プログラムを書けるSEかなぁ。
なるほど、志が高い(^^;

ただ、私の周りにはちょっと偏屈な技術者が多く、人間性は信じら
れない人がおおいです。初心者を馬鹿にしきった口振りや態度など、
誰でも始めは初心者で、識者からの教えられかたでその人間がどの
ように覚えてゆくかが決まると思うのですが...

たとえば、とほほさんとは何度かメールのやり取りをしてますが、
プログラマーな人なのに、おおらかな人間性を感じました。

68Userさんは、くれぐれもそうならない様に期待します。
#これは本心です、いやみじゃ無いので誤解なさらぬように。

> # 多分OS名はBSD/OSじゃないですかね。BSDIは会社名。
> ## ちなみに BSDIのBSDとFreeBSDのBSDは、意味が違います。
> あと、FreeBSDもLinuxもGNUのソフトをたくさん使ってますが、
> BSD/OSがそこらへんを独自に作ってるなら、結構そこらへんで
> はまるかもしれません。
> # http://www.gnu.org/software/software.html のfileutils、shellutils、
> # diffutils、GNUtarあたり。
> あと、パッケージ管理(pkg_add/pkgadd)とかユーザ管理(adduser/useradd)
> なんてのは各UNIXごとにバラバラなんで、ご注意を。
ありがとうございます、ぜんぜんOKです。
こういう事を知りたかったのです。(^^)/

最初に触れたUNIXがLinuxなので、その他のOSやその作法について
はまだまだなんです。
#変更後まだ数日しか経ってないもので。

ただ私は、プログラマー志望では無いので余り深みにはまらぬよう
に慎重にしないと、ついつい...(^^;

ちなみにBSDIは、「Berkeley Software Design Inc」の略だそうです。
プロバイダの商用OSとしてかなり普及していると聞きました。
しかし、私が借りた無料レンタルWebスペースのOSは Linuxでした。

No. 310 # M.Masuda 1999/05/28 (金) 14:53
>プログラマーな人なのに
ここ、訂正します。
これじゃ、偏見ですね。(^^;
プログラマー方すいませんでした。

No. 311 # mm 1999/05/29 (土) 22:48
とほほさんとこの話題が出てますね(笑い)
そのとほほさんのラウンジの質問を見ていて思い出したのですが、
(質問自体は、ホームぺージの作成には関係なさそう…)
statが返す構造体のmodeの上位7ビットはどのような意味がある
のでしょうか?
上位3ビットは、
    0x8000 ブロックデバイス
    0x4000 ディレクトリ
    0x2000 キャラクタデバイス
であることは分かったのですが、下位の
    0x1000
    0x0800
    0x0400
    0x0200
が分からないのです。
検索で探しても、ビットの意味まで記述した記事が見つけられなくて…(^^;

ところで、perlのCGIで、
    (stat(STDOUT))[2]&0x2000
    (stat(STDOUT))[2]&0x8000
を調べて見ると、下の方が真となって、ブロックデバイスと
出たのですが(STDINも同じ)、これってウチのWebサーバーが
CGIの標準出力を一旦ファイルにリダイレクトしている
ということなのでしょうか?

No. 312 # mm 1999/05/30 (日) 05:24
あれから、ls のソースを調べればいいと考えたのですが、
その中で、S_IFDIR とかを #defined した stat.h を探すのに
手間取ってしまいました。
(やはり、grep一発でカタが付く環境が羨ましい…(^^;)

それはともかく、各ビットが意味を持つ訳ではなく、
0xF000 type of file mask
でマスクした値が以下の意味を持つようです。

0x1000 named pipe (fifo) FIFO
0x2000 character special キャラクタ型スペシャルファイル
0x4000 directory ディレクトリ
0x6000 block special ブロック型スペシャルファイル
0x8000 regular 通常ファイル
0xA000 symbolic link シンボリックリンクファイル
0xC000 socket ソケットファイル
0xE000 whiteout
0x0200 save swapped text even after use

ところで、最後の2つは何なんでしょうか?

No. 313 # 68user 1999/05/30 (日) 09:11
> ただ、私の周りにはちょっと偏屈な技術者が多く、人間性は信じら
> れない人がおおいです。
ん〜、まぁ初心者の程度にもよるかと。僕の場合、自分で調べようと
しない人、一度聞いたことを覚えようとしない(メモを取らない)人には、
教えたくないですね。

もちろん、
> 初心者を馬鹿にしきった口振りや態度
がよろしくないのは当然ですが、教えをられる側の程度にも
よるのではないかと思います。

> たとえば、とほほさんとは何度かメールのやり取りをしてますが、
> プログラマーな人なのに、おおらかな人間性を感じました。
いや〜僕はあんなに心が広くないので(^^;

ちなみに僕は他人に(直接面と向かって)教えてると、だんだん
不機嫌になってきますので、あまり教えないようにしてます(笑)。

No. 314 # 68user 1999/05/30 (日) 09:13
> その中で、S_IFDIR とかを #defined した stat.h を探すのに
> 手間取ってしまいました。
stat(2)を見るのが一番早いんじゃないでしょうか。

> 0x0200 save swapped text even after use
sticky bitです。chmod 1755、chmod u+t などとすればこのビットを立てられます。

以下、知ってたらごめんなさいな説明。

昔のUNIXでは仮想記憶はなく、実メモリと HDD上のスワップ領域の
2本立てでした。で、sticky ビットが立っているファイル(実行ファイル?)
のテキスト領域は、実行後もスワップ領域に保持され、再実行する際は
高速に実行できるようになっていました。つまり頻繁に使うプログラムの
stickyを立てておけば高速に実行が可能だったわけです。

しかし、現在のコンピュータはキャッシュや仮想領域が進化したので、
stickyビットの重要性はなくなりました。FreeBSDではファイルに
対する stickyビットは無視されています。
# ここらへんは、正しいことを書いているかどうか自信がありません。

一方ディレクトリに対する stickyはちゃんと意味があって、
誰でもその下にファイルを作成することはできるけど、削除する際は
ファイルのオーナーしか削除できないという意味があります。
/tmp がいい例ですね。
    % ls -ld /tmp
    drwxrwxrwt 18 bin bin 1536 May 30 07:57 /tmp/

> 0xE000 whiteout
うーん、ローカルの全ファイルに対して、このビットが立ってるか
どうか調べてみたんですが、1つもありませんでした。なんでしょうね?

> 下の方が真となって、ブロックデバイスと
> 出たのですが(STDINも同じ)
僕のまわりのFreeBSD/Solarisでは、STDIN/STDOUTともに、普通の状態だと
キャラクタデバイス(ttyですな)、ファイルにリダイレクトするとregular、
パイプならFIFOになりました。CGI上で実行すると、IN/OUTともFIFOでした。
# http://X68000.startshop.co.jp/~68user/tmp/mode.txt
# http://X68000.startshop.co.jp/~68user/tmp/mode.cgi

> これってウチのWebサーバーがCGIの標準出力を一旦ファイルに
> リダイレクトしているということなのでしょうか?
mmさんのところってHPですから(でしたよね?)、実装の違いがあるの
かもしれないので、僕の知識では何とも言いがたいです。

No. 315 # mm 1999/05/30 (日) 17:42
>stat(2)を見るのが一番早いんじゃないでしょうか。
あっ、すいません、以前教えて頂いた、
    http://www.jp.freebsd.org/man-jp/search.html
で、stat を検索すると、
    マニュアルがみつかりませんでした。"stat.[1-9n]"
という警告が出たんで、こっちは諦めてたのですが、
ウチのサーバーの man にはありました…(^^;
ただし、ビットの意味までは書いてないです…×

ところで、この stat(2) の (2) とかの数字は、どういう
意味なのでしょうか?
以前から少し気にはなってたんですが、ついつい放ったらかし
にしてました…(^o^;ゞ


>sticky bitです。chmod 1755、chmod u+t などとすれば
>このビットを立てられます。
あっ、sticky bitと聞いて思い出しました(^^;
swapの話や/tempの例も読んでたのですが、
昨日は連想が全く働きませんでした…すいませんですm(__)m
>以下、知ってたらごめんなさいな説明。
とんでもないです。知らない可能性の方が高いので、
お手数でなければ、ぜひ今後ともよろしくお願いしますm(_~_)m

>どうか調べてみたんですが、1つもありませんでした。なんでしょうね?
ls のソースを見てると、S_IFDIRに'/'、S_IFSOCKに'='という感じで、
S_IFWHTには、'%'を付けてるので、何か意味があるんでしょうね。

とにかく、下位9ビットの上の3ビットは
01000 sticky bit
02000 SGID
04000 SUID
ということで、8進で書いたら、UIDとかとの関連で思い出しました(^^;
(modeはやはり8進の方が分かり易い…)


>CGI上で実行すると、IN/OUTともFIFOでした。
私もそれを期待してたのですが…
それはともかく、先にウチで実行したCGIはマスクが
間違ってたので、mode.cgi を実行してみました。
環境は、HP-UX Netscape-Enterprise/2.01b です。
# http://www2s.biglobe.ne.jp/~cru/test/mode.cgi
1100000 000000000
is SOCKET

1100000 000000000
is SOCKET

ウッソー?
なんで、ソケット??
実は、nph-cgiで実行されてて、WWWサーバーの代わりに
ラッパーがヘッダを付加してるとか???


ちなみに、Windows95での実行結果です。
C>perl mode.cgi
0010000 000000000
is CHAR_DEV
0010000 000000000
is CHAR_DEV

C>perl mode.cgi < file1 >file2
C>cat file1 | perl mode.cgi | more
1000000 110110110
is REG_FILE
1000000 110110110
is REG_FILE

ついでに、Win95 のJava WWWサーバーでの実行結果
0001000 000000000
is FIFO
0001000 000000000
is FIFO
あれ? is REG_FILE を予想したのですが…??

No. 316 # 68user 1999/05/31 (月) 02:36
>  http://www.jp.freebsd.org/man-jp/search.html
> マニュアルがみつかりませんでした。"stat.[1-9n]"
> という警告が出たんで、こっちは諦めてたのですが、
このページ、日本語版がなければ英語版を表示してくれればいいのに。
改善要求出しておきます。

> ところで、この stat(2) の (2) とかの数字は、どういう意味なのでしょうか?
セクション番号です。
http://X68000.startshop.co.jp/~68user/unix/pickup?man

結構OSによって違っていて、SunOSなんかだと、1B,1C,1Fなどがあったり、
またあるOSではシステムコールだけど、別のOSではライブラリという
ものもあるので、セクション番号はあまり絶対的なものではありません。

各セクションの詳しい説明は、man 1 intro とか man 2 intorでわかります。

> S_IFWHTには、'%'を付けてるので、何か意味があるんでしょうね。
どうやら、unionファイルシステムというものに関係があるようですね。
でも役割などはよくわかりません。
http://home.jp.freebsd.org/cgi-bin/namazu.cgi?key=whiteout&dbname=users-jp
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/miscfs/union/Attic/libc.fts.c?rev=1.1.1.1
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&cmd=&man=mount_union&dir=jpman-3.2.0%2Fman

> C>cat file1 | perl mode.cgi | more
> is REG_FILE
> is REG_FILE
DOSのパイプは、一度ファイルに落としてから再度そのファイルを
リダイレクトして実現しているんでしたっけ。

No. 317 # 信和 [E-mail] 1999/05/31 (月) 19:04
会社でホームページを開設するんですが,サーバを管理してほしいとの事なんです。
NTTから直接らしいんですが、ネットワーク用なんです。
回線はOCNエコノミーです。
具体的にどんな本を読んで勉強すればいいか教えてください。
具体的に教えていただけると、本当に感謝です。
勉強しますんで是非アドバイスを下さい。
お願いします

No. 318 # 68user 1999/05/31 (月) 20:05
あーうー、あなたが現在どれだけの知識を持っているか、どんな
OSを使うのかがわからないので、なんとも答えにくいです。
# それに、僕はその分野の良書を知らないので…。

サーバおっ立てるなら、とりあえず DNS/WWW/SMTP/POP くらいを
勉強すればいいでしょう。書店に行けば
    「FreeBSD(Linux)で始めるインターネットサーバ」(この書名はあくまでも例です)
などという本が結構置いてあると思うので、数冊買って読んでみては
いかがでしょう。ドメイン登録が必要なら、JPNICへの手続きの
方法が書いてあるものを買うといいかも。

とまぁ非常に簡単なアドバイスしか言えませんが…。

No. 319 # mm 1999/05/31 (月) 21:30
>セクション番号です。
ありゃ〜! すいません、詳細な説明があったのですね(^o^;ゞ
ついでに質問してしまったもので、ロクに調べてませんでしたm(__)m
>セクション番号はあまり絶対的なものではありません。
なるほど、分かりました。

>このページ、日本語版がなければ英語版を表示してくれればいいのに。
>改善要求出しておきます。
そういえば、検索フォームに
>日本語はセクション 1,5,6,7,8 のみです(無いものもあります)。
とありました。
セクションの意味が分かってなかったので、ぜんぜん気にしてなかったです(^^;
それと、日本語で見つからなければ、言語で英語を選んで探せばいいと
思って今見に行ったら、なぜか英語が選択できなくなってた…なぜだろう??

>DOSのパイプは、一度ファイルに落としてから再度そのファイルを
>リダイレクトして実現しているんでしたっけ。
本来のDOSではその通りです。
パイプの使用中にディレクトリエントリを取ると、ファイルが見えます(笑い)
Win95のDOS窓でも同じみたいです。
ただし、Win95のWin32では、プロセス間通信としてのパイプを
サポートしてるようなので、Win32のperlで、
    open(FH,"| cat");
    &get((stat(FH))[2]);
を実行すると、Javaの場合と同じ is FIFO になりました。

No. 320 # Netboy 1999/06/04 (金) 17:45
68userさん,
大昔のSEGA PC-BBSでピンボケ発言をしていた
Netboyです.

'にくぽんBBS'の掲示を見て,お邪魔しました.
お肉さんは会社の研修で,今月はネットできないそうです.

SEGA PC-BBSの過去ログの件なんですが,私がサーバーと
回線を用意しますので,そちらで公開を継続していただく
ことは可能でしょうか?

T1以上の回線上のサーバーを新しく仕込む予定です.
68userさんにアカウントを発行して,68userさん用のHP領域を
差し上げますので(ログ展開用と合わせて2G程度),
そちらで当面の間,公開を続けていただきたいのです.

'当面の間'とは,具体的には,来夏くらいまでです.
その後のことは,やってみてからご相談したいと思います.

勝手なお願いですが,よろしくお考えいただけますよう,
お願い申しあげます.

- - - - - - - - - - - - - - - -
お肉さんの過去ログ置き場である私の自宅サーバー
(ODN;64kbps常接;Linux)なら,とりあえずすぐに使えます.
ログを移設したりする用途であれば,すぐにでも
アカウントを発行できます.ただし,遅〜いボロサーバー
ですけど.

No. 321 # 68user 1999/06/04 (金) 21:09
こんにちは、Netboyさん。

> お肉さんは会社の研修で,今月はネットできないそうです
のようですね。書き込んだ後に知りました(^^;

> T1以上の回線上のサーバーを新しく仕込む予定です.
> 68userさんにアカウントを発行して,68userさん用のHP領域を
> 差し上げますので(ログ展開用と合わせて2G程度),
え〜、T1って1.5Mbpsですよね(違いましたっけ)。
2Gと言えば2GBですよね(そりゃそうだ)。結構な容量です。

しかし、それだけのリソースを僕に貸し与えることによって、
Netboyさんにメリットが発生することは全くないように思える
のですが、なぜそういうお申し出をされるのでしょうか?
# 失礼な質問かもしれませんが、素朴な疑問です。

> '当面の間'とは,具体的には,来夏くらいまでです.
これは2000年の夏、ということでしょうか。

僕が持っているログは、1997/4〜1998/4のもので、現在は
更新していません。よって、一度設置してしまえば保守する
必要はないので、HDDがクラッシュでもしない限り、永遠に
存続させられると思います。

容量は向こうに書いたように、ログ自体が100M、namazuの
インデックスが300MB超(400MBいくかも)です。

過去ログ自体、懐古主義以外のなにものでもありません。アクセス
自体もそんな頻繁にあるわけでなく、たまに現BBSで「ここで昔のが
見られるよ」という発言があったときに、アクセスが増えるくらいです。
# http://X68000.startshop.co.jp/~68user/cgi-bin/view-count.cgi?log=day4

昔を懐かしむためだけに、何も新しいものを生み出さない
コンテンツのために、T1の回線と数百MBの容量を僕に与えて
いいのでしょうか? 今一度お考えください。

なお、別に断っているわけではありません。こちらがお受けした後に
Netboyさんが「こんなはずでは…」と思われるのは避けたいので、
現状を御理解いただいているのか確認したいわけです。
# もちろん「やっぱりやめます」ということになっても、全く構いません。

No. 322 # Netboy 1999/06/05 (土) 02:13
68userさん,
ご質問いただき,ありがとうございます.

>しかし、それだけのリソースを僕に貸し与えることによって、
>Netboyさんにメリットが発生することは全くないように思える
>のですが、なぜそういうお申し出をされるのでしょうか?

お申し入れをした理由は次のようなものです.

1.SEGA PC-BBSのファンであること
2.ログの保存と公開について68userさんの
    活動に関心を持っていたこと
3.Web掲示板CGIにちょっとした機能を付け加える計画を
    進めていて,このような'ログの置き場所・公開方法の問題'を
    ある程度解決したいと考えていること

さらに,たまたま私がお手伝いしているPCパーツショップさん
のサーバーを任されていて,偶然予備のWebサーバーが空いている
のです.このサーバーはFreeBSDです.

>一度設置してしまえば保守する
>必要はないので、HDDがクラッシュでもしない限り、永遠に
>存続させられると思います。

もっとアクセス量があるのかと思っていました.それなら
帯域幅を圧迫しないと思いますので,特に期限は無しで
構いません.アクセス量があると,来年のサーバー設置
料金が上がってしまうので難しいところです.

領域の余った部分はお好きに使っていただいて構いません.
Telnetごしに普通の感じで触れるようにします.

詳細はメールでご質問にお答えできますし,ご説明したい
ことがらもいくつかあります.
メールを差し上げて構いませんでしょうか?

(長文で失礼しました)

No. 323 # Netboy 1999/06/05 (土) 02:33
追加して補足します.
予定しているサーバーは,群馬の両毛インターネットさんという
業者さんのところにある,上流が東京インターネット系6Mbps
(又はODN系1.5Mbps)のサーバーです.

商用サーバーですが,営業内容とは関係ない,お得意様ユーザーさん
のHPやパーツのドライバ類,データシート,掲示板などを収容する
予定のものです.よってコンテンツはすべてコピーフリーになります.

ただし,メインWebサーバーがコケたときは,こちらを復旧機材に
徴用されますので停止します.オマケにこの業者の米NIC用2nd-NS
サーバーと兼用になっていて,Webトラフィックがあまりに重くなると
怒られてしまいます.

No. 324 # 68user 1999/06/05 (土) 07:49
> お申し入れをした理由は次のようなものです.
なるほど、概ね理解しました。では、
    ・僕もNetboyさんも、一切の義務/責任を負わない
    ・アカウントの存続、容量などは、Netboyさんの一存にお任せする
ということなら、お申し出をお受けしたいと思います。

> もっとアクセス量があるのかと思っていました
ちなみに5月のアクセス数(ヒット数: httpd-access.logをgrep|wc -l
したもの)は10000弱です。全文検索を付ければもう少し増えるかも
しれませんが、倍増とか3倍増などということはありえないと思います。

> メールを差し上げて構いませんでしょうか?
はい、よろしくお願いします。

> 群馬の両毛インターネット
takauji.or.jp でしたっけ? ところで、なんでtakujiなのかしら。

No. 325 # Netboy 1999/06/05 (土) 18:04
>・僕もNetboyさんも、一切の義務/責任を負わない
>・アカウントの存続、容量などは、Netboyさんの一存にお任せする
>ということなら、お申し出をお受けしたいと思います。

ありがとうございます.
上記の条件は了解いたしました.


>ところで、なんでtakujiなのかしら。

さぁ...(笑)
企業向けのryomonet.co.jpというのもあります.

では,メールをこれから送りますので.

No. 326 # 68user 1999/06/16 (水) 23:36
え〜、トップページにも書きましたように、
    http://X68000.startshop.co.jp/~68user/index.html
にリンクを張っていらっしゃる方は
    http://X68000.startshop.co.jp/~68user/
に、
    http://X68000.startshop.co.jp/~68user/unix/index-unix.html
にリンクを張っていらっしゃる方は
    http://X68000.startshop.co.jp/~68user/unix/
に修正していただくようお願いします。

/~j5306050/index.html や /~j5306050/unix/index-unix.html を指してるリンクは
全部修正したつもりです。

なんでかと言うと、webを作り始めたときは index.html を省略できることを
知らなかったんですが(^^;、やっぱりURLは短い方がいいよなと思って
変えてみました。めんどくさいことさせてすいませんが、ぜひご協力を。

あと、(やっと)UNIXのとこに検索フォーム付けました。

No. 327 # Manabu Takayama [E-mail] 1999/06/18 (金) 00:17
このサイトを Infoseek で見付けてしまった、高山と申します。
68user さん、はじめまして(笑)。

このサイトには、HTTP クライアントや、POP3 クライアントの作り方
など、他にはあまり無い情報があって、hacker 志望(実力は全然で
すが)な僕には、かなり為になります。

これからも、たまに見に来ようと思いますので、頑張ってください。
では。

# www-links Project 。もっと人手が欲しい〜。
# 特に、三平さんの収集した URL の整理とか、相当キツそう(涙)。

No. 328 # ウスターソース 1999/06/18 (金) 13:12
余談ですが、HTTPのソースを見たい時はブラウザに
view-source:http://abc.hogehoge.com/
とかするとソースウインドウが開きます(笑)

既に知ってますかね、でもCGIだと色つけとかすれば
便利そうです、作ってみようかな・・・

No. 329 # 1999/06/18 (金) 17:13
<a href="http://abc.hogehoge.com/">http://abc.hogehoge.com/

No. 330 # gxh [E-mail] 1999/06/18 (金) 17:16
x−mate3.0をしている人、おしえてください。
メールを待ってます。

Prev< No. 265〜330> Next  [最新発言に戻る] [過去ログ一覧]