68user's page 掲示板

Prev< No. 801〜901> Next  [最新発言に戻る] [過去ログ一覧]
No. 801 # 68user 2000/03/13 (月) 22:12
> メモリに負担がかかるような気がするのですが
う、その通りですね。修正しておきます。ありがとうございました。

No. 802 # 68user 2000/03/13 (月) 23:48:05
> print <CACHE>;
の他にも、なんやかんやと掲示板をいじってみたり。

というわけで、テスト。
すいませんが、古い cookie は多分効きません。

No. 803 # Yuuki [URL] 2000/03/14 (火) 02:16:15
> Windows ユーザへの注意点とか、ここから perl を落とせとか、
> そこらへんがまとまってるリンク先があれば、
僕が見てきたページには無いようです。
僕がそこらへんをまとめたページを作りますね。
WindowsでPerlをやる時の注意点 てな感じで。

> 古い cookie は多分効きません。
例によって、名前を入力する場所に "68user"と入ってました。:-)

No. 804 # 68user 2000/03/14 (火) 02:53:23
> 例によって、名前を入力する場所に "68user"と入ってました。:-)
ありゃ、古いバグを掘り起こしてしまった…。

No. 805 # Yuuki [URL] 2000/03/14 (火) 03:58:05
まとめたページ、とりあえず作りました。
まだ情報が少ないですが、、(なのでまだ公開してない)
http://homepage1.nifty.com/tyuuki/perl/windows_perl.html

かなり眠い状況で書いたので間違いあるかも。です。:-)

No. 806 # へにか [URL] 2000/03/15 (水) 08:27:36
あ、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でした。更に、曜日が、羨ましい状態です。

No. 807 # A-trap 2000/03/15 (水) 14:30:43
はじめまして。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
こんなかんじにファイルサイス゛列だけを表示したいのですが教えてもらえますか?

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 808 # kuw 2000/03/15 (水) 14:39:32
こんにちは。

> ファイルサイス゛列だけを表示したい

わたしなら、
ls -l | awk '{print $5}'
かなぁ。
awk って便利ですよね〜

No. 809 # A-trap 2000/03/15 (水) 15:30:22
kuwさん、ありがとうございました。
助かりました。

No. 810 # Leiji 2000/03/15 (水) 22:14:36
はじめまして

レンタルサーバを借りていて、telnetで少々時間のかかるコマンドを
バックグラウンドで順番に実行させようと思っているのですが、
ログアウトするとどうもプロセスが終了してしまうようなのですが・・・
ログアウト後も終了させないでつづけさせるにはどうしたら良いのでしょう?
ちなみに、commandA&&commandB &っていうふうにコマンドラインには
入力しています。

超初歩的な質問だとおもいますが、よろしくお願いします。。。

No. 811 # 68user 2000/03/15 (水) 23:20:33
> ログアウト後も終了させないでつづけさせるには
    http://X68000.startshop.co.jp/~68user/unix/pickup?nohup
でいいですか?

> 更に、曜日が、羨ましい状態です。
おぉ、毎日が日曜日…。

Win+perl の件は後程。

No. 812 # あき [E-mail] 2000/03/16 (木) 20:13:04
    スゴい深刻な問題抱えてますーーーー。
    連休明けまでに(3月20日までに)プレイステーション2売ってくれる
人いませんかーーーー?????
    チョットクライ高くてもかまいませんんんん。

No. 813 # Yuuki [URL] 2000/03/16 (木) 23:30:15
> cygwinをインストールして、perlをインストールして、cygwin1.dllを
> 入れ替えて、やっと動作するので
勘違いしてCygwinをダウンロード(13MB)する人がいるかもしれないので一応。
CygwinPerlをインストールするためにCygwinをインストールする必要はないです。
どうするかというと、それは僕のページに書いてます。:-)
(http://homepage1.nifty.com/tyuuki/perl/windows_perl.html)

No. 814 # Leiji 2000/03/17 (金) 03:16:47
>68userさま
お返事ありがとうございます。
リンク先のnohupコマンドを使ってやってみたのですが
やっぱりログアウトするとプロセスが終了してしまうみたいです。

nohup /home/hoge/hage/commandA&&/home/hoge/hage/commandB &
というかんじで入力しているんですけど。。
実行すると「nohup: appending output to `nohup.out'」
というメッセージがでます。
こういうやり方でいいんですよね?
サーバの設定の問題なのかな?
どうすればいいんだろうか。。

No. 815 # 68user 2000/03/17 (金) 05:26:43
> 実行すると「nohup: appending output to `nohup.out'」
ということは bash をお使いだろうと思いますが、こちらでは
    nohup commandA && nohup commandB &
でできました。tcsh なら
    ( nohup commandA && nohup commandB ) &
とサブシェルに実行させれば動くようです。

No. 816 # へにか [URL] 2000/03/17 (金) 23:13:17
Yuuki様;
>勘違いしてCygwinをダウンロード(13MB)する人がいるかもしれないので一応。
うっ、た、確かに・・・ ご指摘ありがとうございます。
会社のマシンでも、pathからcygwinをはずして、usr\以下にpathを
追加し、そこにcygwin1いれると、動いてました。
あと、Yuuki様のページ、なかなかインストールしやすくなっていて、
感心しました。

No. 817 # こてつ [E-mail] 2000/03/22 (水) 21:04:54
DVDとCD−RWが一緒になっているドライブがあると聞いたけど、これってお買い得?

No. 818 # 68user 2000/03/22 (水) 22:10:20
モジュール関係を中心に更新しました。
    http://X68000.startshop.co.jp/~68user/net/
さすがにネタが尽きてきた & 飽きてきた。何かおもしろい
題材ないですかね。NNTP も ICQ もいまいち食指が動かないなぁ。

あと、Windows+perl を使うときの参考ということでリンクを
張りましたが、よいですか?>Yuuki さん

# 「よいですか?」というのは (失礼な言い方でなりますが)
# こういう分野は情報がすぐに古くなるので、定期的に更新を
# 続ける気はおありですか? ということ。
## 僕は Windows 使ってないため、情報が正しいかどうか全く
## チェックできないので。

なお、ちょっと忙しくなるので、26〜27日あたりから
4月中旬まで しばらく掲示板を閉めます。

No. 819 # かりり 2000/03/24 (金) 07:32:04
>こてつさん
DVDとCD-RWくっついてるやつは
性能的にみても,別々に買ったほうが安いので
辞めといたほうがよろしいかと。

>68user様
自作機で新マシン作りました。ハード関係
前より詳しくなりましたよ。CGIは相変わらずですけど。
奥深いですね。自分で組むと全く動かないです(w

No. 820 # Yuuki [URL] 2000/03/24 (金) 09:38:40
> あと、Windows+perl を使うときの参考ということでリンクを
> 張りましたが、よいですか?>Yuuki さん
はい。大丈夫です。

No. 821 # 68user 2000/03/25 (土) 07:13:21
> はい。大丈夫です。
了解です。

> 自分で組むと全く動かないです(w
CGI ってのはデバッグしにくい環境なので、いろいろと
がんばってみて下さい。

いろいろとありまして、転載についての説明を
    http://X68000.startshop.co.jp/~68user/
に加えました。ご一読下さい。

予告通り、4月中旬まで掲示板は閉めます。ではまた。

No. 822 # ftptransのforkのところをselectで書くと [E-mail] 2000/04/18 (火) 10:13:19
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様がかかれた物も拝見できましたら
ありがたいのですが。

以上、よろしくお願いします。

No. 823 # 薩摩 [E-mail] 2000/04/18 (火) 11:31:09
ごめんなさい。下の投稿をしたのは僕です。
名前が抜けていました。どうも削除はできないようなので、
もう一度投稿しました。
本当にごめんなさい。

No. 824 # へにか [URL] 2000/04/18 (火) 21:52:16
どうも、おひさしぶりです。再開おめでとうございます。
散々アドバイス頂いて、スクリプトも頂いて、そのおかげでなんとか
perl proxyを作れました。本当にどうもありがとうございます!
sysreadの返値がundefかどうかを判定するところではまってました。

これでやっと当初の目的(漢字変換および80桁で折り返す、ヘブライ語
のテキストをiso-8859-8-iからiso-8859-8)に取り掛かれます・・・

No. 825 # 68user 2000/04/18 (火) 22:44:09
ふう、やっとネットワークに繋がった。

> 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)」
なんてのを刻々と表示できますし。表示するかどうかは別としても、
僕ならそうすると思います。

No. 826 # 薩摩 [E-mail] 2000/04/19 (水) 09:11:08
68user様

有難うございました。なるほど、readを使うとは
思い当たりませんでした。これから挑戦してみます。

有難うございました。

No. 827 # UNIX初心者 [E-mail] 2000/04/20 (木) 10:42:14
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です。

No. 828 # 68user 2000/04/20 (木) 12:50:37
exec フォーマットエラーという意味がわからんので確認して下さい。

適当なファイル foo を用意して、gzip foo で
foo.gz が作成されますか? できるなら、
bash-2.03-sol7-sparc-local.gz が壊れているんでしょう。

gzip foo でも exec フォーマットエラーとなるなら
gzip 自体がおかしいんでしょう。どうやってgzip を
インストールしましたか?

No. 829 # has 2000/04/20 (木) 17:27:53
>68user
こんちは。いろいろおつかれさまです。
もうおともだちはできましたか?

さて、早速ですが、以前作っていただいた掲示板のCGI、
実はダウンロードしたつもりで忘れていたみたいです。
いろいろ探してみたんですが、見つかりませんでした。
なので、お手数ですが、もっかいどっかにアップしてやって下さい。

No. 830 # tototo [E-mail] 2000/04/20 (木) 20:00:27
はじめましてこんにちは。
diffコマンドで質問があるのです。

最終行にnewlineがあるファイルとないファイルを比較したとき、
newline以外の部分が同じでも、その行は違うよと答えてきます。
newlineあるなしに関わらず内容部分だけでdiffするにはどうしたら良いでしょうか。
どうか教えてください。よろしくお願いします。

No. 831 # 68user 2000/04/20 (木) 21:45:07
> diff
うちの GNU diff-2.7 では、-b オプションで
お望みの動作をしているようです。

> もうおともだちはできましたか?
まぁ、それなりに。というより、ずっと一緒に研修受けてるから
自然に仲良くなるって感じですかね。

> もっかいどっかにアップしてやって下さい。
すんませんが、もうちょいデバッグしてから送ります。
どういうバグが残ってたのかも忘れてしまったので。

週末に仕上げる予定。

No. 832 # tototo [E-mail] 2000/04/20 (木) 22:12:52
68userさん、お返事ありがとうございます。

>うちの GNU diff-2.7 では、-b オプションで
>お望みの動作をしているようです

ぼくが使ってるやつで-bオプションを使ってもゆうこときいてくれないです。
何か他の方法あれば教えてください。お願いします。

No. 833 # 68user 2000/04/21 (金) 00:46:31
-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、くらいしか
思い付きませんねぇ。

No. 834 # tototo [E-mail] 2000/04/21 (金) 09:26:10
68userさんへ
お返事ありがとうございます。

ぼくの使っているSunOS環境のdiffではダメなようですね。トホホ。
どうやら末尾のスペースまたはタブしか無視してくれないようです。
perlもつかえる環境ではないのです。仕事先なのでインストールもできないです。
またいろいろとチャレンジしてみます。

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

No. 835 # UNX初心者 [E-mail] 2000/04/21 (金) 10:13:01
65userさんへ
お返事ありがとうございます。

いろいろ調べてみたのですが、SPARC と INTEL
を間違えていたみたいです。
間違えてINTELをダウンロードしてしまったみたいです・・・・

bash-2.03-sol7-sparc-local.gzを展開したら
bash-2.03-sol7-sparc-localになってこれは展開できてるんですよね
でもその後にどうやってインストールしていいかわかりません。
お願いします 教えてください。

No. 836 # 68user 2000/04/21 (金) 13:09:08
> でもその後にどうやってインストールしていいかわかりません。
http://hiroyuki.oresama.org/tech/solaris/install.solaris.html
など。僕は package から入れたことがないので、詳しいことは
わかりません。

> ぼくの使っているSunOS環境のdiffではダメなようですね。
GNU の diffutils を入れるのは? SunOS のコマンドは
貧弱すぎて、僕はほとんど使ってないです。

No. 837 # へにか [URL] 2000/04/22 (土) 22:52:36
>へにかさんのが これより高機能なら公開して下さいね。

僕のproxyは、
1) 1st-proxy.plに対し、
    a) sysreadの返値をdefinedでチェックするところ、
    b) フィルタをかけられるようにしたところ、
    c) 環境変数を配列に貯えたるところ、
    以外は、あまり変わらないところ、
2)68userさんが示された、2nd-proxy.plの不具合の内容に対するような
    観点ではチェックしていない(というか、僕が遊べる程度でしかチェック
    していない)ところ、
という事で、まだまだ公開できるレベルではないです。

すいません・・・

No. 838 # CADファン 2000/04/23 (日) 23:36:33
疑問が何点かあります。
アスキー形式ファイルとは具体的に言えばどういう事なのでしょうか。
それと、中間ファイル、圧縮形式、プロッタ言語の意味がわかりません。
どうか、お教え下さい。困っています。
よろしくお願い致します。

No. 839 # 68user 2000/04/23 (日) 23:50:58
何の話かわからないです。CAD ですか?

> プロッタ言語
HPGL とかのこと? プロッタに座標 (10,20-200,300) の
直線を書かせるには (HPGL を解するプロッタならば)
PD10,20;PA200,300; (だったっけな?) という文字列を送れば、
あとはプロッタが適切に解釈して線を引いてくれるってこと。

アスキーと圧縮形式はコンピュータ一般の用語ですが、
CAD 界ではどうなのか知りませんので何とも言えません。
中間ファイルは CAD の処理系依存でしょう。多分。

なお、僕は CAD を全く知りません。

> 週末に仕上げる予定。
すまんす。仕上りませんでした>has

No. 840 # コペン 2000/04/24 (月) 17:09:22
SFCのドラクエ3ですが、
最後のゾーマにあえません。
のぼっても、もぼっても、くだっても、くだってもおなじ階段とかって、
関係あります????

No. 842 # かくた@ちばし [E-mail] 2000/04/25 (火) 17:42:58
こんにちは。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さんが見られた設定は、管理者が書き換えたものではないでしょうか?

No. 843 # 68user 2000/04/25 (火) 22:29:32
> 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」だった、と言っていただければ、その記述は削除しておきます。

No. 844 # かくた@ちばし [E-mail] 2000/04/26 (水) 09:25:37
> # 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の
記述であるのも頷けますね。

No. 845 # まめねこ 2000/04/26 (水) 11:55:05
ただいまWAPのペ−ジを作成していますが、どうも文字のエンコ−ドがうまくいかずいきづまっています。
誰か助けてください。

No. 846 # かくた@ちばし [E-mail] 2000/04/26 (水) 16:27:30
> ただいまWAPのペ−ジを作成していますが、どうも文字のエンコ−ドがうまくいかずいきづまっています。
> 誰か助けてください。
環境がどうなのか全く分からないので、的外れかもしれませんが、
HDMLの文字コードに関する問題ならば、
http://www.houshinji.org/hdml.html
のサイトが参考になるかもしれません。

No. 847 # 68user 2000/04/27 (木) 21:38:16
> Solaris2.3からそのままservicesをもってきている場合は、
> pop-3の記述であるのも頷けますね。
では、次回更新時に「古い Solaris (おそらく Solaris 2.3 あたり)
では、pop-3 となっている可能性があります。最近のものだと
大丈夫でしょう。」としておきます。

そういえば、あのときの Linux は…Netboy さんのとこだったかなぁ。
確認しておこう。

No. 848 # 68user 2000/04/28 (金) 01:10:48
Netboy さんに聞いてきました。
    http://www.lunartecs.ne.jp/~segabito/cgi/bbs/minibbs.cgi
debian 系が pop-3 なのではないか、だそうです。
# Linux ってのは Slackware/Redhat/debian 系の3本柱があるんですよね?
# で、Vine は debian 系…?

No. 849 # Netboy [E-mail] 2000/04/28 (金) 07:25:58
失礼します.

>Vine は debian 系…?
いえ,Redhat系です.
設定ファイル作成部分のみDebian系の(古めの?)スクリプトを元に
独自のものを用意した...のかな,という感じです.
インストーラは配色がいい感じの独自のものでした.

Linux関連で'pop-3'になっているものは,どこか当時の
Debianの香がする,ということだけ判りました.

今のDebian(2.2?)は判りません.
おじゃましました〜.

No. 850 # 68user 2000/05/01 (月) 19:45:41
どうもです。

というわけで、やはり pop-3 な環境もあるようだ、ということを
追記しておきます。

No. 851 # 薩摩 2000/05/03 (水) 17:12:32
68user様

こんにちは。
以前お世話になりました薩摩です。
その節はありがとうございました。

実は、68user様のecho-serverプログラムを参考にしまして
ローカルで動くftpproxyを作ったのですが、echo-server
プログラムにftp処理をくっつけただけのプログラムになって
しまいまして、知り合いに配布しようかと考えているのですが、
CGIの引用は自由とは書いてありましたが、これは許可を
取らなくてはと思い、書き込みをしました次第です。

配布してもよろしいでしょうか?

No. 852 # 68user 2000/05/04 (木) 21:00:02
無償配布ならば (メディア代などは受け取っていいです)、
プログラムの再配布・改変はご自由にどうぞ。

ちゃんと決めないといた方がいいかなぁ。とりあえず GNU の
精神を尊重して、GPL チックに扱っていただけると
うれしいです (いいかげんだなぁ)。

No. 853 # 68user 2000/05/04 (木) 21:01:25
テステス。曜日を直したつもり。すいませんが、また cookie が
クリアされてるかもしれません。

No. 854 # 薩摩 2000/05/05 (金) 18:53:53
68user様

配布の許可ありがとうございます。

GNUの精神を尊重して、GPLチックに扱わせていただきます。

これからGNUとGPLを調べなきゃ。

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

No. 855 # へにか [URL] 2000/05/08 (月) 14:49:30
お久しぶりです。

前回、公開しないと言ってしまいましたが、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があったままのほうが、嬉しいです・・・

No. 856 # へにか [URL] 2000/05/08 (月) 18:14:27
タイプミスしました。

誤 : やむをえず、MSIEで

正 : やむをえず、proxyを経由しないで

すみません・・・

No. 857 # ハリー 2000/05/11 (木) 12:04:22
すいません、ちょっとお聞きしたいのですが、viの設定はどこでどのように
すればよいのですか?今の設定では画面の半分くらいまでしか文字が表示さ
れないのですが。
ちなみにテラタームでそのマシンにつなぎに行ってます。

No. 858 # 薩摩 [URL] 2000/05/11 (木) 12:50:34
>68users様
以前配布の許可について質問させていただきました薩摩です。

このたびホームページを開設したしましたので、
展示しているスクリプトについてご意見を伺えると
幸いです。

よろしくお願いします。

http://koten.hypermart.net/

No. 859 # 68user 2000/05/12 (金) 01:05:28
> 正式な公開(linkを僕のサイトから張る)に先立ち、説明の書き方等で問題があるか
> どうか、是非ともご確認して頂きたいと存じます。
別に問題ないです (特に確認を求める必要はないですよ。念のため)。
時間がないので、すいませんがスクリプトは読んでません。

> http://koten.hypermart.net/
うちの NN4.61 で見ると、何も表示されないです。

> 今の設定では画面の半分くらいまでしか文字が
> 表示されないのですが。
環境変数 TERM で何とかなりませんか。env TERM=cons25 vi とか
env TERM=VT100 vi とか。あるいは TeraTerm の設定かも
しれませんが、使ってないので詳しくはわかりません。

No. 860 # へにか [URL] 2000/05/12 (金) 08:01:24
68user様;
どうもありがとうございます。では、近日中に公開いたします。

ハリー様;
ウィンドウサイズの縦が50行くらいで半分くらいになっているなら、
以下の方法がよいかもしれません。うまくいかなかったらすみません。
Setup->Terminalで、開いた画面で、
Terminal sizeのTerm size=win sizeのチェックボックスにチェック
すると、うまくいきませんか? 因みに、Tera Term Pro version 2.3です。
僕は、これでうまくいっています(環境変数は特に設定していなかった
ような気がします)。

No. 861 # 薩摩 [URL] 2000/05/12 (金) 09:13:26
>68users様
大変申し訳ございません。僕はIE5を使っているのですが、
見れていたので問題ないと思っていました。
自分自身の未熟さを知りました。すみません。

少し手直しをしたのですが、見れますでしょうか?

http://koten.hypermart.net/

No. 862 # 68user 2000/05/14 (日) 02:47:58
> 少し手直しをしたのですが、見れますでしょうか?
見られました。

個人的な意見ですが、串や鯖などの言葉は好きになれません。
もちろん薩摩さんのページですので、どういう言葉を使うかは
薩摩さんの自由なんですが。
# スクリプト自体に関する感想でなくてすいません。

No. 863 # 砒(ひ) 2000/05/14 (日) 10:25:53
トップページの 他では役に立たないスクリプト&ファイル が全て
500 エラーで見られないんです。
申しわけありませんが直して頂ければ...

No. 864 # 薩摩 [URL] 2000/05/14 (日) 15:14:03
68user様
>見られました。
ありがとうございます。

>個人的な意見ですが、串や鯖などの言葉は好きになれません。
>もちろん薩摩さんのページですので、どういう言葉を使うかは
>薩摩さんの自由なんですが。
いえいえ、私の方こそ気分を害させてしまいまして、すみませんでした。
本来ならば、来ていただけるだけでも光栄でしたのに、
このようなことになってしまい、私も反省しています。
こういった言葉を使うことがあまりよくないということが
わかりました。勉強になりました。

># スクリプト自体に関する感想でなくてすいません。
言葉の方も、手直しいたしましたので、今度来ていただける
機会がありましたときにお願いします。
それまで僕も精進して少しでも68user様に追いつけるように
なりたいです。

本当にありがとうございました。そして、すみませんでした。

No. 865 # 68user 2000/05/14 (日) 15:27:41
> トップページの 他では役に立たないスクリプト&ファイル が全て
> 500 エラーで見られないんです。
ご報告ありがとうございます。直しました。

No. 866 # 琢磨 2000/05/15 (月) 04:24:12
はじめまして。
いつも参考にさせていただいています。

いきなりな質問でなんなんですが、私は現在PerlでのWebオートパイロット
スクリプトを開発中でして、ちょっとお聞きしたいことがあります。
作業ディレクトリが./として、ダウンロードしてきたファイルを
./dir/fileに保存しようとしたとき、open(FH, ">./dir/file")
ではdieしてしまうんです。
原因は./dirが無いからだ、というのは分かるんですが、ではその都度
mkdirしていかないとだめなんでしょうか?
このmkdirも当方の環境がWindowsのせいかうまくいきません。
`md dir`とかは汎用性が著しく無くなるので避けたいです。
打開策があるなら是非ご教示ください。

上でも少し触れましたが、当方の環境はWindows98+ActivePerlです。

No. 867 # 68user 2000/05/15 (月) 06:24:44
> ではその都度 mkdirしていかないとだめなんでしょうか?
そうです。

> このmkdirも当方の環境がWindowsのせいかうまくいきません。
Windows で mkdir が失敗するとは初耳ですが、本当でしょうか?
どういう風に書いてるんですか?
# Windows + perl の環境がないので試せませんが。

それはそれとして、perl5 なら深い階層のディレクトリを
一発で mkdir してくれる File::Path という標準モジュールが
あります。詳しくは perldoc File::Path で。

No. 868 # 琢磨 2000/05/15 (月) 08:49:53
> Windows で mkdir が失敗するとは初耳ですが、本当でしょうか?
> どういう風に書いてるんですか?
申し訳ありません、気を取り直してもう一度試してみるとうまくいきました(^^;
と言うかmkdirで失敗する現象が再現しません。
またWindowsのファジーさにやられた気がする・・・
お騒がせしました。
一応、
mkdir "./dir", 0604;
と言う感じで書いてます。
以前はエラーメッセージは出ないものの、ディレクトリが作成されていない
と言うような状況でした。

> それはそれとして、perl5 なら深い階層のディレクトリを
> 一発で mkdir してくれる File::Path という標準モジュールが
おぉ、見てみます。
ありがとうございます。

と、言うわけで、失礼しました。

No. 869 # 砒(ひ) 2000/05/15 (月) 22:54:58
先日はジンソクな対応ありがとうございました。

grep について質問なのですが、analog で apache のログを解析するとき
/member/ 以下が邪魔なので grep などにて `/member/' の文字が入った行を
取り除きたいのです。が、マヌアルを見てもそれらしきオプションが見当たりません。
もしなにか方法があったら教えてくださいませ。

No. 870 # 68user 2000/05/15 (月) 23:02:52
grep -v /member/ filename でいいですか?

No. 871 # 砒(ひ) 2000/05/16 (火) 01:07:12
> grep -v /member/ filename

あ〜〜〜〜できましたわぁ〜〜感謝感激
よく読んでなかったですね…
ありがとうございましたー

No. 872 # 入海 2000/05/19 (金) 18:35:37
はじめまして。

「他では役に立たないスクリプト&ファイル」のうち、
nslookup.cgiは、他の方のものと比べ複数入力が可能な点でいいなと思い、
何とかこちらの環境でも使えるように試行錯誤したのですが、
結果表示の際に「ホスト名」「IPアドレス」と表示されるべき部分が、
うまく表示できません(ナカグロ=黒点になる→文字化け?)。
実質的な実りの部分は全然問題ないのですが。

ソース中、put_data のサブルチに渡している引数だと思いますが、
$desc のローカル変数部分の文字化けが絡むのでしょうか。
Windowsの環境でメモ帳などでつくるため、nkfのオプションは -s に
しました。nkfより遅いと言われる jcode.pl も試しましたが不発でした。

あるいはやり方(書き方)が間違っているのでしょうか、
何かアドバイスをいただければ幸いです。

No. 873 # 68user 2000/05/20 (土) 23:29:19
> 結果表示の際に「ホスト名」「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 は不要です。

No. 874 # yuji 2000/05/21 (日) 12:33:32
はじめまして、yujiといいます。
たびたび参考にさせていただいています。(^^)
アクセス状況チェックでは、1時間おきに更新されていますが、
これは、どのようにして定期的にプログラムを
実行させているのでしょうか?
サーバー上では、cronが利用できると思うのですが、
プロバイダのほうで提供されてたりするのでしょうか。
それとも他のサーバー上で実行されているのでしょうか。

あと、linux上でPerlを書いているのですが、
LANカードとPPP接続を行った場合に、gethostbyname,
inet_ntoa(inet_aton())のどちらを使ってもLANカードの
アドレスが取得されてしまうのですが、
PPP接続のアドレスを取得する方法というのは、なにか
ありますでしょうか?
ifconfigでpppの部分だけ切り出そうかとも思ったのですが、
exec('ifconfig'');
の出力をどうやって拾うのかがわかりません。(^^;
なにかアドバイスなどありましたら、どうぞよろしくお願いします。

No. 875 # 68user 2000/05/21 (日) 14:34:37
> アクセス状況チェックでは、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);
という感じでしょうか。

No. 876 # yuji 2000/05/22 (月) 03:21:49
お返事、どうもです。(^^)
そうなんですか。>cron
ちなみに、cronは、
どこのプロバイダでも利用できるものなんでしょうか?
telnetができるところなどに限定されるんでしょうか。
>%crontab ~/.crontab

外部に接続すると、そのソケットのアドレスは、
グローバルなIPアドレスでないと困りますから、
それをgetsocknameで取得するということですよね。
ばっちりでした。(^^)

Linuxのifconfigは、
(略 lo eth0など)
ppp0 Link encap:Point-to-Point Protocol
                    inet addr:*.*.* P-t-P:*.*.*.*
(略)
のようなカタチでして、水平タブなどを取り除いて、
.*?の最小マッチングを試してみたところ、取得できました。
外部コマンドの出力は、パイプを利用して取得すると。(メモメモ)

長くなってすいません。(^^;
今後とも、どうぞよろしくお願いします。

No. 877 # 68user 2000/05/22 (月) 05:02:11
> ちなみに、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 のデータが設定されるわけで。

No. 878 # hiroko amada [E-mail] 2000/05/22 (月) 14:45:03
unixで、sqlファイルを開き、中のコードを見れる状態にしただけでは、
書きこみモードにしない限り、
SQL文の書きこみ、変更はできないようになっているのでしょうか?

No. 879 # goto [E-mail] 2000/05/23 (火) 09:19:44
HP-UX9.06の内蔵HD(/ディスク)がfsckに引っ掛かってしまい、
立ち上がらない現象が発生しています。
ついては、CD-ROMからブートして上記HDをfsckに掛ける必要があるかと
思われますが。
そこで、実際にどのメディアを使い、どのような操作をすべきか
教えて下さい!

No. 880 # 入海 2000/05/23 (火) 18:29:49
> ブラウザに明示的に文字コードを伝えても
> ダメですか? それでもダメならソースそのものを見せて下さい。
> # どこかにそのまま置いてもらえると、文字コードなどが
> # わかるので調べやすいです。
ヘッダ対策はしてたのですが。
ご迷惑をおかけしますが、ソースをアップしてみましたので、
ご覧いただけますか。
http://www.hatsumei.psiweb.com/IPconvert_3.cgi.txt

> nkf は、CGI の出力を JIS にするために使っているだけです。
>  ・スクリプトを SJIS にして、出力も SJIS
>  ・スクリプトを EUC にして、出力も EUC
> などという場合は、nkf は不要です。
知識不足でお恥ずかしいです。勉強になりました。

No. 881 # 入海 2000/05/23 (火) 18:33:26
すいません。アドレス間違えました。
正 → http://www.hatsumei.ab.psiweb.com/IPconvert_3.cgi.txt

No. 882 # 68user 2000/05/23 (火) 21:58:14
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 も使ったことがないので わからないです。

No. 883 # 入海 2000/05/24 (水) 16:49:05
68user様。
やはり文字化けでしたか、ありがとうございました。
SJIS での一部の漢字と @ の文字化けは知ってましたが、
全角空白2つでも化けるとは知りませんでした。

教えていただいた「対策」もいいと思いましたが、
  print " \ $desc = $after<br>\n";
と、全角空白の一つ目と二つ目の間に、
エスケープ用にメタキャラクタ \ を置いてみると
ソース的にすっきりするかなと思い、
やってみたらこれでうまく表示されました。

いやぁ、とほほさんのところも覗いてきましたが、
漢字コードひとつとっても、奥深いですね。
ほんとにお世話になりました。ありがとうございました。

No. 884 # 68user 2000/05/24 (水) 20:14:00
別に全角空白が2個だからまずいわけではなく、
    \x81 @ $ d e s c
となるので、@$desc という配列 (シンボリックリファレンス)
を表示しようとしているのでしょうから、
> 全角空白の一つ目と二つ目の間に、エスケープ用に
> メタキャラクタ \ を置いてみると
で本当にうまくいくのか疑問です。確かでしょうか?
それとも jperl だからうまくいく、ということでしょうか。

なお、FreeBSD+perl5.00503 では
    $desc = 'abc';
    print " \ $desc\n";
ではダメでした。

No. 885 # 入海 2000/05/25 (木) 12:22:06
> で本当にうまくいくのか疑問です。確かでしょうか?
再度確認しましたら、文字化けはしていないのですが、
インデント、つまり空白2文字分の字下げはうまくいっていませんでした。
その分が、つめられて行頭に配置されます。

> それとも jperl だからうまくいく、ということでしょうか。
ローカルでなく、プロバイダの Appacheサーバ上ではありますが。

でも、疑問が。
>  print '  '; # 全角空白2つ
>  print "$desc = $after<br>\n";
これでやってみましたが、syntax errorを返してきました。
上の2行目が next token ??? なのだそうです。
エンジンで検索してみましたが、意味がわかりませんでした。
セミコロンは打ってるし・・・。

No. 886 # ヘルツォーカー [URL] [E-mail] 2000/05/26 (金) 13:14:20
はじめまして。
ヘルツォークで検索したら、貴サイトにたどりつきました。

最近私はヘルツォークツヴァイのようなゲームを
自作してみようという主旨のサイトをつくりました。
まだ内容はないのですが、よかったら見て下さい。

トップページから最強の敵を創造る会へどうぞ。

メイリングリストも参加募集中です。
プログラミング好きの方でツヴァイ好きの方、
共にヘルツォークの続編(みたいなもの)を作りませんか。

No. 887 # 68user 2000/05/27 (土) 23:52:32
> インデント、つまり空白2文字分の字下げはうまくいっていませんでした。
半角空白になってませんか?

> これでやってみましたが、syntax errorを返してきました。
> 上の2行目が next token ??? なのだそうです。
タイプミスだと思いますが、直らなければ再度
どこかに置いて、見せて下さい。

> 最近私はヘルツォークツヴァイのようなゲームを
> 自作してみようという主旨のサイトをつくりました。
ゲームをやらないのでよくわかりませんが、最強の
思考ルーチンを作ろう的なページですか。いろんな
思考ルーチン同士を戦わせると面白そうですね。

昔 I/O でそういう記事があったっけなぁ。

No. 888 # yuji 2000/05/29 (月) 01:03:24
どうも、yujiです。(^^)
今、いろいろなサーバーにアクセスして、
HTMLファイルをダウンロードするというプログラムを作成しているのですが、その中にダウンしていると思われるサーバーなどが
ありますと、そこで処理が中断されてしまいます。
そこで、タイムアウト処理のようなものを実装して、
ある程度経過してもダウンロードできないようなら、
次のURLに進むようにしたいと考えています。
こういった場合、どのようにして、
タイムアウト処理を実装したらよいのでしょうか?
forkなどで子プロセスを作成するのでしょうか。
アドバイスなどありましたら、どうぞよろしくお願いします。(^^)

No. 889 # 68user 2000/05/29 (月) 05:19:17
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 するにはどうしたらいいのかなぁ?

No. 890 # yuji 2000/05/29 (月) 13:49:39
すばやいお返事とサンプルコード、
ありがとうございます。
$SIG{ALRM}とevalを用いることで、
うまくできました。(^^)
DNSサーバーエラーなどで、
connectで時間がかかる場合があるということで、
connectと<SOCKET>の部分をalarmで
囲むカタチで利用させていただきました。
connectの部分については、
最初にIO::SocketのTimeoutを指定してみたのですが、
うまくいきませんでしたので。(^^;
$SIG{ALRM}=\&timed_out;の\は大切なのですね。
意味合いについて、調べてみたいと思います。
今後とも、よろしくお願いします。(^^)

No. 891 # 入海 2000/06/02 (金) 13:15:22
68user様、遅ればせながら、
>> インデント、つまり空白2文字分の字下げはうまくいっていませんでした。
> 半角空白になってませんか?
どうやら、そのようでした。
ただ、ウインドウズ環境のテキストエディタでは、
全角空白というのが打ちにくいように思いました。
半角空白二つならべて、それで同じかなんて思ってました。
私の知識不足なのかもしれませんが。

ちなみに、下のように書いて、やっとインデントができました。

        print ' '."$desc = $after<br>\n";

No. 892 # 68user 2000/06/03 (土) 18:14:21
> 半角空白二つならべて、それで同じかなんて思ってました。
半角空白を2つ並べてもブラウザに反映されないのは、
perl とは全く関係なくて、出力しているのが HTML だからです。
HTML 的に言えば &nbsp; で空白を表現する方がいいでしょう。

わかっておられるかもしれませんが、念のため。

No. 893 # yuji 2000/06/04 (日) 04:01:52
どうも、yujiです。(^^)
Web上でアカウント発行がいろいろなところで行われていますが、
いたずら防止などもあり、入力したメールアドレスに、
登録内容の確認のメールを送って、再度返信してもらうなど
さまざまな方法がありますが、こういったプログラムは、
どのような仕組みになっているのでしょうか?
かなり漠然とした質問で申し訳ないですが、(^^;
なにかご存知でしたら、どうぞよろしくお願いします。

No. 894 # 68user 2000/06/04 (日) 05:45:40
0. メールが返ってきたらメール処理プログラムが実行されるよう、
    ~/.forward で設定しておく
1. CGI でメールアドレスを入力してもらう。
   適当なファイルにメールアドレスを記録して、メール送信
   この時点で CGI プログラムは終了。
2. 訪問者がメールを受け取り、再度返送
3. メールが届き、~/.forward で設定したプログラムが実行される
   記録しておいたメールアドレスと照合して、正しければ OK。

…てな感じでしょうか。

No. 895 # yuji 2000/06/05 (月) 01:11:43
またまたすばやいお返事、どうもです。(^^)

なるほど。>0,1,2,3
~/.forwardについては、初耳でして、勉強になります。

あと、メールのヘッダやフッタに自動的に広告などをいれている
メールを見かけますが、ああいうものは、
どういったカタチで実現しているんでしょうか?
CGIなどを使って、というカタチでしょうか。

No. 896 # CZ 2000/06/05 (月) 01:18:34
こんばんは。某ラウンジで何度かお世話になりました。

さて、さっそく質問なのですが、ファイルマウントについて教えてください。サーバを一台まるごと借りたはいいのですが、なかなか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です。何かいいアイディアや参考になるウェブサイト・本があればご教示ください。情報が足りなければご指摘ください。

No. 897 # 68user 2000/06/05 (月) 03:37:00
> この/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 上でボタンを押すとそういうメールが送られる、
# というなら関係ありますけど。

確か、そういう機能を持ったメーリングリストプログラムが
あったように思いますし、常に一箇所からしかメールが発信
されないなら、その部分でヘッダやフッタを追加してもいいです。

No. 898 # 68user 2000/06/05 (月) 03:43:52
> 7. mv /var /oldvar
おっと。マウント中のマウントポイントは mv できないかも
(FreeBSD ではそうでした)。

一度 /dev/hd2 を umount すればいいですが、もし device busy
などと怒られたら、umount -f で強制アンマウントできます。
本当は fstat や fuser で、/var 以下のファイルを使用している
プロセスを調べて、それを殺してから umount するのが筋ですけど。

No. 899 # yuji 2000/06/05 (月) 13:27:56
いつもお返事、ありがとうございます。(^^)
表現が悪かったですね。>CGI(^^;
おっしゃるように、この場合は、必ずしもWWWサーバーと
やりとりするわけではないですから。

perlやCによるプログラム
でヘッダやフッターを処理したメールを、SMTPサーバーで
送信しているのか、それともSMTPサーバーのどこかで、
ヘッダやフッターを設定できるのかな、と思いまして。

今のところは、他の場所で使う予定はないですので、
自分で付加するプログラムを実験してみようと思っています。
下のメーリングリスト関連のリンク集を参考に、
いろいろなメーリングリストの特徴を勉強してみようと思います。(^^)
http://yamanoya.ecs.cst.nihon-u.ac.jp/patio/ml/makeml/mllinks.html

No. 900 # CZ 2000/06/05 (月) 21:19:42
お返事ありがとうございます。

早速Linuxのメーリングリストに入る準備をしましたが、業務用に使っているわけではないし、物は試しと思って一発勝負をかけてみました。

% /usr/local/apache/bin/apachectl stop
% fuser -k -m /dev/hda2
| /etc/fstab から /var のエントリを削除

ここで`umount /var`としたら'device busy'が出たので、深く考えずに再度`fuser -k -m /dev/hda2`としたら見事telnetが死にました。そこで
% umount -f /var
% mv /newvar /var
% reboot
この作業を管理会社の方にお願いしました。

| /etc/fstab に /home 追加
% mkdir /newhome
% mount /dev/hda2 /newhome
% rm -rf /newhome/*
% cd /home; tar zcvf - . | (cd /newhome; tar zxvfp -)
ここで何かエラーが出たのですが、読み飛ばし。
% mv /home /oldhome
% reboot

再起動したらさっきのエラーが原因らしく/newhomeの中が空で、かつ/homeができていなかったので、

% cp -a /oldhome/* /newhome
% mkdir /home
% reboot

再起動中に混乱してきました。(そういえばさっきの/newhomeはどうなるんだ? `mkdir /home`は不要だったか?)

% mount
(あ、ちゃんと/dev/hda2 on /home type ext2 (rw)になってる。)
% ls /home
(中身もある。ひょっとして成功か?)

というわけで、成功しました。(あるいは成功したように見えています。)一つ間違えば追加料金を払って再設定してもらうところでした。今までもこんな具合に、システムをほとんど理解しないまま手探りで運用してきました。もっとしっかり身に着けようと、本などを買って勉強してはいるのですが。

ただ、/newhomeと/homeが両方存在しています。/newhomeは消しても構わないと判断できるでしょうか。

No. 901 # 68user 2000/06/06 (火) 01:01:56
> ただ、/newhomeと/homeが両方存在しています。/newhome は
> 消しても構わないと判断できるでしょうか。
多分よいと思いますが、df -k して、別パーティションで
あることを確認して下さい。また、本当にコピーできたか
どうか du や diff などで確認して下さい。

> `mkdir /home`は不要だったか?
/dev/hda2 を /home にする、ということなのでマウントポイント
/home はマウントする前に mkdir で作成しなければなりません。

なお、マシンが手元にあるなら、シングルユーザモードで起動してから
作業をするのが正しいやり方です。


> perlやCによるプログラムでヘッダやフッターを処理したメールを、
> SMTPサーバーで送信しているのか、それともSMTPサーバーのどこかで、
> ヘッダやフッターを設定できるのかな、と思いまして。
SMTP サーバがヘッダやフッタに関与することはないと思います
(そういうサーバが世の中に絶対ないとは言い切れませんが)。

ちなみにメーリングリストサーバの fml なんかは、ポリシー
として、フッタを付けるような機能は実装しない方針だった
ように思います (今はどうか知りません)。

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