68user's page 掲示板

Prev< No. 120〜136> Next  [最新発言に戻る] [過去ログ一覧]
No. 120 # M.Masuda 1999/02/04 (木) 14:26
ちょっと質問!です。
すいませんシェルコマンドのmailって有りますよね。
#みんな使ってます?

私が聞いたmailコマンドの使い方ですが、
=================
mail "送信先のメールアドレス" <ENTER>
Subject: "メールタイトル" <ENTER>
メール本文、etc.
最後に"."ピリオドのみで終了。
=================
ここまでを、聞きました。
#OSによっては違うかもしれないけど。

http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#sendmail
を見ると、sendmailとほぼ同じ操作ですよね。
シェルの場合、sendmailとmailコマンドの違いは、自動的にSubject:等
の文字がエコーされる事ぐらいなのですか?

CGIで直接メールを出す場合、レスキューさんのWebFromを参考にすると
sendmailに直接書込んでいますが、CGIで直接sendmailに書込みした場合
のエラーメッセージを取得したい時は、sendmail実行時にどんなオプシ
ョンを付ければいいんでしょうか?

前にsendmailに実際に転送された手順を表示する様なオプションが
ある事を聞いたのですが忘れました。(^^ゞ
#man sendmailで調べたら -N dns ってのが怪しいのですが意味が
#よく解からん。(ToT)
##前から思っていたけど、英語圏で生まれていたらもっと詳しくなっ
##ていたろうな。だってマニュアルって英語だもん(^^ゞ

No. 121 # mm 1999/02/04 (木) 22:45
>おろ、TABLEまで何とかしようという魂胆で? 志が高いですね(笑)
いや、入れ子構造だと決め付けて、作ってみてから気が付きました(^^;

>僕が昔に書いたのは http://X68000.startshop.co.jp/~68user/tmp/tag.txt
おお、ちゃんと < や > の対応もチェックしてあるんだぁ…
なるほど、スタックを使うので、入れ子にならない例外的な処理も
やりやすそうですね。
ウチのは、再帰を使ったので、スタックを直接操作できないんです(^^;
以前「とほほ」さんとこに書き込んだんですが、一応
http://www2s.biglobe.ne.jp/~cru/library/junk/tag.txt に置いときます。
例示した文字列では、</hr>の処理が 68user さんのとは違ってます。

># 昔 yaccとlexで組もうとした事があるけど、エラーから回復させる事が
># できずに(=文法エラーにぶつかると止まってしまう)挫折しました(^^;
yacc は私も挫折しました…ただし、68user さんよりはもっと手前でですが(^^;

ところで、HTMLみたいなものも、yaccで解析できるんでしょうか?
BNFで定義できれば問題ないのかな…?
lexの方を独自の切り出しルーチンに替えればいいのかな…?

No. 122 # クーロンで苦労!? 1999/02/05 (金) 22:14
crontabコマンドについて質問させてください。
あるプログラムAをcrontabで自動起動させたいのですが、
そのプログラムAはCシェルでしか動きません。
そこでcrontabで呼出すシェルスクリプトBを作成し、Bの先頭で
Cシェルを指定し、次に必要な環境変数を設定し、
次にAを実行するようにしたのですが、
うまくいきませんでした。
Bにenvをいれて、環境変数を出力するようにしたら、
path等がshのデフォルトのままでした。
ちなみにAはオラクルに接続しSQL処理をおこないます。
どなたかご存知の方がいらっしゃいましたら、お知恵をお貸しください。

No. 123 # 68user 1999/02/06 (土) 23:56
> http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#sendmail
> を見ると、sendmailとほぼ同じ操作ですよね。
うーん、mailコマンドっていうのはメーラーなんですよ。メールも
読めるし返事も書ける。低機能ながら立派なメーラーです。一方、
sendmailというのはSMTPサーバ兼(低レベルなら)SMTPクライアントって
感じでしょうか。
# しかし上のリンク先の「SMTPポートに繋げてメールを送る方法」って
# のは大嘘ですね。誰だ、こんなの書いたのは。…俺か(^^;

> CGIで直接sendmailに書込みした場合のエラーメッセージを取得したい時は、
宛先がなかった場合などに返ってくるメールを指して「エラーメッセージ」と
言ってらっしゃるなら、
    http://www2e.biglobe.ne.jp/%7es-hasei/cgi-bin/wwwlng.cgi?print+99020031.txt
など。

> #man sendmailで調べたら -N dns ってのが怪しいのですが意味が
> #よく解からん。(ToT)
-Nは-N failure,successなどと指定できます。manを読むときは、
日本語マニュアルを使って楽をしましょう。
    http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=sendmail&dir=jpman-3.0.0%2Fman


> あるプログラムAをcrontabで自動起動させたいのですが、
> そのプログラムAはCシェルでしか動きません。
状況がよくわかりませんが、プログラムAがCシェルスクリプトなら
プログラムAの1行目に
    #!/bin/csh -f
などと書いてあるでしょうから、crontabにプログラムAのスクリプト名を
フルパスで書いておけばいいです。PATHは、プログラムAの先頭で
    set path=(/bin /usr/local/bin /usr/sbin ....)
と書いてもいいですし、crontabの設定ファイルの先頭に
    PATH=/bin:/usr/local/bin:/usr/sbin:...
と書いてもいいです。例えば
    PATH=/bin:/usr/local/bin:/usr/sbin:...
    0 * * * * /home/user/bin/hogehoge
とか。

No. 124 # 68user 1999/02/07 (日) 01:01
> yacc は私も挫折しました…ただし、68user さんよりはもっと手前でですが(^
こっちも挫折は早かったですよ〜。
    http://X68000.startshop.co.jp/~68user/tmp/html.l
    http://X68000.startshop.co.jp/~68user/tmp/html.y
うーん、短いなぁ。今見ると、どこがどういう意味なのかさっぱり(笑)

No. 125 # M.Masuda 1999/02/07 (日) 01:42
どうもありがとう68userさん。(^^)/

> > CGIで直接sendmailに書込みした場合のエラーメッセージを取得したい時は、
> 宛先がなかった場合などに返ってくるメールを指して「エラーメッセージ」と
> 言ってらっしゃるなら、
>  http://www2e.biglobe.ne.jp/%7es-hasei/cgi-bin/wwwlng.cgi?print+99020031.txt
> など。
直接行ってみたら、なんとよく行くページの中。
ここの所忙しく、あまり見に行って無かったらなんとリアルタイムな!
灯台下暗しとは、この事?

> -Nは-N failure,successなどと指定できます。manを読むときは、
> 日本語マニュアルを使って楽をしましょう。
>  http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=sendmail&dir=jpman-3.0.0%2Fman
こんな便利があるとは!なんともうれしい限りです。(^^ゞ
でもうちの環境ではLinuxなので適当に、コンバート?しながら見てみます。

だけど、また暫く睡眠時間が少なくなりそう....(T_T)

ちなみですが。
http://X68000.startshop.co.jp/~68user/Cgi-room/printenv.cgi
で書いてあるなかで REMOTE_PORT を、「ポート番号とは全く関係なくて、httpdをforkした回数じ
ゃないかなぁと思ったらこれも違うみたい。よくわからん。」と書いてありましたが、そのまんま
です。(^^)

つまりクライアント側が、webサーバーの80ポートにアクセスする際に使用する、クライアント側の
ポートの番号です。
私の使用しているパケットモニターで確認しました。
クライアント側アプリケーションが、通信の際にソケットを生成するとその時に自動的に割り当て
られるみたいです、アプリの処理方法はそれぞれでなんでしょうが、通信セッション(っていうのかな)
が終わる毎にクライアント側のポートが変わりました。
#まじめに勉強した訳でなくパケットモニターでの通信内容をみて書いてます。(^^ゞ

No. 126 # mm 1999/02/07 (日) 20:44
>http://X68000.startshop.co.jp/~68user/tmp/html.l
>http://X68000.startshop.co.jp/~68user/tmp/html.y
ありがとうございます。なんとなく雰囲気はわかるような気がします(^o^;ゞ

ただ、lexでは"<BODY>"とかをトークンとして扱ってますよね。
こういう方法で <BODY GBCOLOR="#ffffff"> のような属性を持ったものも
扱えるのでしょうか?
よくは分かってないんですが、lexではトークンを正規表現で切り出しますよね。
だから、<>内をまとめて切り出すのは難しいような気がするのです。
それとも、<>内はまた別のルールでトークンに切り分けるのかな…?

No. 127 # 68user 1999/02/08 (月) 01:09
> REMOTE_PORT
どうもです。これを設置したのは去年の6月ですから、その当時はよく
わかってなかったようですね。ちなみに当時は、
    「サーバ側はポート80で待っているが、一旦コネクションが確立されると、
        次のクライアントのために一刻も早くポート80を開けなければならないので、
        新しいポートが(CGIに)割り当てられる。CGI側はそのポートを通じて
        クライアントと通信しなければならない」
のではないかなぁ…と思っていた記憶があるような ないような。

> でもうちの環境ではLinuxなので適当に、コンバート?しながら見てみます。
いや〜、おそらくLinuxにもjmanはありますよ。僕はLinux知らないけど、
ないはずがないと思います。


> ただ、lexでは"<BODY>"とかをトークンとして扱ってますよね。
どうなんでしょう? 僕は挫折した人間なのでよくわかりませんが(^^;
weblintなどもperlでやってるんで、HTMLチェッカはyacc&lex向きじゃ
ないのかもしれませんね。

No. 128 # mm 1999/02/08 (月) 03:11
>weblintなどもperlでやってるんで、HTMLチェッカはyacc&lex向きじゃ
>ないのかもしれませんね。
なるほどー
文脈自由文法とかがちゃんと分かってないので、まだ?なんですが…(^^;

Cで言語処理系のプログラムを書く機会があったら、またちゃんと勉強しようと
思いつつ、そのままになってるんですが、Windowsなんかを使ってるとどんどん
遠ざかって行くような気がします(^^;;;


日本語マニュアルもありがとうございました。
とりあえず、ウチのサーバーのmanの出力は読みやすくはなったのですが、
やっぱ日本語だと助かります(^^;

No. 129 # クーロンで苦労!? 1999/02/08 (月) 09:14
68userさんへ
ありがとうございます。
参考にさせて頂き、もうちょっとやってみます。

No. 130 # M.Masuda 1999/02/12 (金) 15:54
こんにちは。

CGI実行中のバッファのフラッシュについてなんですが。

具体的には、あるサーバーのログ20Mb以上を圧縮して取り出すのに、

CGIで圧縮ファイルを生成→生成されたファイルをDownLoadする。

というCGIで、全ての処理にかなり時間が掛るのと、ブラウザの
TimeOutをさける為に、処理過程を画面に出力しながら処理を続け
る動作のスクリプトです。

$|=1でバッファのフラッシュを指定できますよね。
確かに、シェル上で直接実行すると動作の確認が出来ましたが、
ブラウザ上から実行すると、スクリプトが全て終わってからでない
と画面に出力されません。

他で聞いたところによるとサーバー(Apacheです)が、CGIの処理が
終わらないとダメみたいです。

ただ、その際STDOUTをクローズすると出力されると言っていたので
、実験しましたがダメでした。
#close後は出力されない

また、ある程度の出力(環境で違うらしい)が溜まるとWebサーバー
がバッファをフラッシュするとも書いてありましたが(未確認)、
無駄な出力をさせたくありません。

なにか、いい方法は無いでしょうか?


>いや〜、おそらくLinuxにもjmanはありますよ。僕はLinux知らないけど、
>ないはずがないと思います。
見つけたんですが、ローカルコンソール(本体)上でxの仮想コンソール?
からなら表示できるんですが、telnetで指定するとmanを表示している?
lessが2バイト文字に対応してないみたいで、読めません。(; ;)
jmanってコマンドですよね、それも無いです。(T_T)
#そもそもtelnet上のmanで日本語表示はダメなんでしょうか?
#ちなみにtelnetは Tra Termを使ってます。

>> REMOTE_PORT
いやーパケットモニターで生の通信内容見てると、結構勉強になります
セキュリティーとかいろんな事の考え方も変わりますね。

No. 131 # 68user 1999/02/12 (金) 17:07
つまり、処理結果を小だしに表示させてタイムアウトを防ぎたいわけですね。
http://www2e.biglobe.ne.jp/%7es-hasei/cgi-bin/wwwlng.cgi などはそのように
できていますね。僕も前に疑問に思って質問したのですが、結局ローカルでは
うまくいきませんでした。

で、そういう場合はnphスクリプトを試してみてはいかがでしょうか。とほほさんの
webに解説があったはずです。

> #close後は出力されない
そうですね。closeするとコネクションは切れます。


> lessが2バイト文字に対応してないみたいで、読めません。(; ;)
FreeBSDではjlessというのがあり、環境変数でLESSCHARSETなどを
設定する必要があります。Linuxもそういうのはないですか?

> jmanってコマンドですよね、それも無いです。(T_T)
んー、そのサーバを誰が管理しているのか知りませんが、
ただ単にインストールしてないだけ、ってことはありませんか?

誰かLinux使いの方いません?(^^;

No. 132 # masuda@excel-net.co.jp 1999/02/13 (土) 00:26
>http://www2e.biglobe.ne.jp/%7es-hasei/cgi-bin/wwwlng.cgi など
>はそのようにできていますね。僕も前に疑問に思って質問したのです
>が、結局ローカルでは うまくいきませんでした。
これって見てみたんですが、わかりませんでした。(T_T)
#この行だけ見て、暫く解析してたり発言をみていたので時間食って
#しまった!

>で、そういう場合はnphスクリプトを試してみてはいかがでしょうか。
>とほほさんのwebに解説があったはずです。
この行を、後で見直して思い出しました。
これって解説ページを後で試そうとブックマークに入れっぱなしでし
た。
後日試してみます。
#誰かホントに1日を30時間に....(エーかげんにしなさい!?)

>> lessが2バイト文字に対応してないみたいで、読めません。(; ;)
> FreeBSDではjlessというのがあり、環境変数でLESSCHARSETなどを
> 設定する必要があります。Linuxもそういうのはないですか?
j*シリーズは私の探したところ見つかりませんでした。(; ;)x2
#どうもJフレンドリーなのはFreeBSDの方が上手みたいですね。
でも日本語マニュアル

>んー、そのサーバを誰が管理しているのか知りませんが
だれも管理してなかったりして。(^^ゞ
セキュリティーのため詳しくは書けませんが、非常に恐いサーバで
す。
#いろ〜んな意味で。

>ただ単にインストールしてないだけ、ってことはありませんか?
そうかもしれないけど、仮にパッケージには入っていてもインスト
ールしてまでは弄れないだろうなぁ。
試験環境として自由に触らせてもらってはいるけど、これ以上私に
は言えない...。

でもここ、
http://www.jp.freebsd.org/man-jp/search.html
よく出来てるんで、利用させてもらいます。
どうもです。(^_^)V

No. 133 # ABCDEFG 1999/02/13 (土) 18:17
こん**は

>>j*シリーズは私の探したところ見つかりませんでした。(; ;)x2
こちらかと
http://www.linux.or.jp/jman/

LANGがja_JP.ujisなら
/hoge/man/ja_JP.ujis以下検索しますよーん

No. 134 # 1999/02/13 (土) 20:11
どうもです、68userさん。(^^ゞ

>で、そういう場合はnphスクリプトを試してみてはいかがでしょうか。
>とほほさんのwebに解説があったはずです。
やってみました。おかげで思うとおりの結果が得られました。
ありがとうございました。
これで忘れられてたブックマークもうかばれるでしょう。笑

ちょっと試験でいろいろやってみましたが、これってhttpサーバーが
リクエストに対して(GETやHEAD等)を判断して返す処理と同じ事を、
CGI側で行なうって事なんですね。
と言う事は、Apacheでサポートしていない(と思う)DELETEとかOPTIONS
を指定するとnphのCGIでいろんな事出来そうですね。
#でもちゃんとセキュリティーを考えないと恐いけど(^^ゞ


ありがとうございます。>ABCDEFGさん。
>>j*シリーズは私の探したところ見つかりませんでした。(; ;)x2
よく探したら有りました!
#なんて探しかたの悪いやっちゃ(^^ゞ

http://www.linux.or.jp/jman/
これってうれしすぎる!!!

そのついでといっちゃなんですが、その環境を使えるようにする方法を
教えては頂けないでしょうか。
#調子よすぎかな!?(^^ゞ

つまり、自分の環境でj*環境を使う方法です。
最初からの設定で、シェルはbashを使っています。
環境ファイルは ~/.bashrcデスよねぇ。
ここにどんな記述をすればいいのか教えてくれるとうれしいです!

今の設定はこうなっています。
$ more ~/.bashrc
# .bashrc

# User specific aliases and functions
# Japanese environment setting.

if [ $TERM = "kterm" ] || [ $TERM = "kon" ]; then
      LANG="ja_JP.ujis"
else
      LANG="C"
fi

export LANG

alias ls='ls -F --color=yes'

# Source global definitions
if [ -f /etc/bashrc ]; then
                . /etc/bashrc
fi

↑ここまでです。
シェルはあんまり勉強してないので、人に教わったlsのalias行を
追加したぐらいで、構文の意味はぜんぜん分かりません。
#多分jmanpath=hogehogeとかやるんでしょうね。

日本語のマニュアルが使えれば今までの苦労も少しは....(^_^)V

No. 135 # M.Masuda 1999/02/13 (土) 23:51
すいません、今度は名前の書き忘れだ〜
下の書込みは私です。
m(_ _)m

No. 136 # M.Masuda 1999/02/14 (日) 00:17
すいませんも一つ質問です。
/var/log/messagesに、
sun last message repeated 3 times
というメッセージが5分置きくらいに出力されるんですが、
これって何か分かります?
#質問2でした。(^^ゞ

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