|
こんばんは岩本さん。 http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#crontab 上のページでcron実行時の注意として、 「なお、crontabで実行されるときには、ほとんどの環境変数が指定 されていないので注意が必要。」と有りますが、試しに簡単なスク リプトで、実行時に有効になっている環境変数を表示させてみて 必要な変数をスクリプトに追加してみたらどうでしょうか? 多分この辺のような気が... #またぜんぜん違ったりして。(^^; |
|
M.Masudaさんへ。 % grep -i procmail /etc/sendmail.cf の結果を教えていただけますか。 > crontabコマンドからシェルファイルを呼び出し… SQL*PLUSなるものも、TNSなるものも知らないので、あくまで一般論 ですが、確かに環境変数が原因であることが多いと思います。 csh/shスクリプトなら、-xや-vオプションを付けることで、 どこで止まっているかわかります。また、 % env - sh とすると、環境変数を完全にクリアした状態のshが立ち上がるので、 その状態でスクリプトを動くような状態にしてみてはいかがでしょう。 # ただし、cronでは設定されているはずのPATH、HOME、USERなども # クリアされてしまいます。 |
|
> % grep -i procmail /etc/sendmail.cf > の結果を教えていただけますか。 ##### @(#)local_procmail.m4 8.6 (Berkeley) 10/20/96 ##### ### PROCMAIL Mailer specification ### ##### @(#)procmail.m4 8.6 (Berkeley) 4/30/97 ##### Mprocmail, P=/usr/bin/procmail, F=DFMSPhnu9, S=11/31, R=21/31, T=DNS/RFC822 /X-Unix, A=procmail -Y -m $h $f $u Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40, A=procmail -Y -a $h -d $u と出ました。 これは吉か、はたまた大凶か? 出来れば意味を教えて下さい。(^^; |
|
こちらは RedHatの方です。 Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40, A=procmail -Y -a $h -d $u それから、WU-FTPDでの/etc/ftpaccessの設定について もし分かるのならメールで直接聞いてもいいでしょうか。 内容を見てもらいたいのですが、内容的に公開してもいい ものか分からないもので...。 内容は一般ユーザーへの、ftp接続時でのアクセス制限です。 |
|
へぇぇぇぇ、ほんとにprocmailを特別扱いしてるんですね。 > 出来れば意味を教えて下さい。(^^; きついことをおっしゃる(笑) Mで始まる行は、配信エージェントの定義を表します。 P=はプログラムのパス、S=とP=はエンベロープ/ヘッダの書き換え、 10/30、20/40ってのは書き換え規則(どこか別の場所で定義されている)、 F=はこの行の(他の行から参照する際の)設定の名前を決めてるのかな? それとも他での定義を参照してるのかな? T=は、メールヘッダに追加される? A=... はわかりません。 sednmail.cfを理解できるほどの知識があるわけではないので (コウモリ本も持ってない)、こんなもんでご勘弁を(^^; Slackwareの配布サイトを見てみましたが、やはり標準で procmailを特別扱いしているようです。Linux界では 普通なのでしょうか(僕からするとちょっと気持ち悪いですが)。 > それから、WU-FTPDでの/etc/ftpaccessの設定について > もし分かるのならメールで直接聞いてもいいでしょうか。 すいません、wu-ftpdは使ったことがないのです。 |
|
はじめまして、こんばんわ。ぬいぐるみバンザイと言います。 CGIについてですが、少し質問があります。 それは、ホームページの更新状況を(自分や他人のサイトも含めて)自動で (そのCGIを実行すれば)検知するようなものを作りたいor探しているのですが お心当たりはないでしょうか? 初心者の自分ではソケットを使ってターゲットとなるサイトに接続して、index.htmlあたりの ファイルの月日を取得できたらいいなと思うのですが、こういうことは可能なのでしょうか? 初心者ゆえ、何をいってんだ?的なところがあるかも知れませんが、よろしくお願いします。m(__)m ではでは |
|
自分のサイトならば、上のURLのスクリプトではいかがでしょう… 他人のサイトの場合は、仰るようにソケットを使って HEAD メソッドかな… M.Masuda さん >4M積んだノートでは、620kbのfreeは確保出来たのですがそれで >限界でした。 そう言えば、そんなことが流行ったことも…、でも620はスゴイ…(笑い) |
|
> それは、ホームページの更新状況を検知するようなもの mmさんのおっしゃる通り、HTTPのHEADメソッドを使えばいいでしょう。 レスポンスのヘッダ部分から Last-Modified: Wed, 20 May 1998 14:59:42 GMT などという情報が得られます。ただし、(少くともapacheでは)SSIを 使っているページでは、Last-modifiedを返してくれません(例えば うちのトップページ)。また、Last-Modifiedを返さないサーバもあるでしょう。 ソケットの使い方については http://X68000.startshop.co.jp/~68user/net/ が参考になるかもしれません。 > CGIについてですが、少し質問があります。 ただし、CGIとして動作させるのは非現実的かと思います。 なぜなら、いろんなサーバに接続するのはそれなりに時間がかかります。 重い時間帯なら数分待たされることも珍しくありませんので、 その間にCGIのタイムアウトが発生するでしょう。 ですから、コマンドラインから動作させるか、あるいはCGIで動かすとしても、 - すぐにclose(STDOUT)してコネクション自体を切断 - その後 更新時刻のチェック - チェック結果をHTMLに吐き出す - (あなたが)すこし時間が経ったらそのHTMLにアクセス とした方がいいと思います。 > or探しているのですが プログラム自体は比較的簡単に作れますから、探せばあるのでしょうが、 残念ながら知りません。ただ、IEやNNにそういう機能が付属しているのでは ないでしょうか。 |
|
はじめまして。 UNIX初心者なので、いろいろ分からない事があり、 いきなりですが、みなさんに教えて頂きたいことがあります。 シェルスクリプト内にてスーパーユーザーになりあるコマンドを 発行したいのですが、スーパーユーザーになったところで プロンプトが帰ってきてしまい、以降の処理に行きません。 どの様にすれば、シェルスクリプト内にてスーパーユーザーになって コマンドを発行できるのでしょうか? よろしくお願い致します。 できれば、シェルのサンプルを見せていただければと思っております。 |
|
>へぇぇぇぇ、ほんとにprocmailを特別扱いしてるんですね。 ありゃりゃ、ほんとにそうだったんですか、私の勘違いなのかなぁ なんて思って、「違いますよぉ」なんてレスが返って来るかと思っ てました。(^^;;;; 一番難しいと言われるsendmailに関しては、既に私の理解を超えてる ので、今は逃げます...(爆) 将来の、目標としておきます。(^^ゞ >きついことをおっしゃる(笑) そんなそんな、コウモリ本もなくてあれだけ理解してればぜんぜん ○では?...。 でも本当にシステムによってかなり設定が違うんですね。 勉強になります。 >すいません、wu-ftpdは使ったことがないのです。 残念です。一応目的の事は達成出来たのですが、その手順での 他の部分への影響が知りたかったのです。 この辺は、いくら1ソフトの設定が出来ても、システムそのものに 詳しくないと、分かりませんからね。 プログラマーの弟は、free630kbと私に自慢してました。(^^ゞ>mmさん #すいません、違う話題で...>68Userさん こんにちはtakashiさん シェルスクリプト内でrootになる? それってどうやるのですか? 普通suコマンドやpasswdコマンドでは、わざとユーザーに入力要求 を出して、システムを保護するようになっているという話を聞いた 事が有ります。 それに、スクリプト内にrootのパスワードを記述しなければいけな いのでは? もしそうなら、それはセキュリティー的に辞めた方がいいと思いま すよ。 何をしたいのかが分かりませんが、root権限でログイン中以外の時 に、何かをさせたいのであればcrontabなどで実現させるのがいいと 思いますヨ。 #外しているかなぁ(^^ゞ |
|
M.Masudaさん、ありがとうございます。 Masudaさんと言う通り、セキュリティの問題のあるやり方なので、 他の方法を考えたいと思います。 また、お世話になると思いますが、その時にもよろしくお願い致します。 |
|
>他の方法を考えたいと思います。 どんな事をしたいのかを書くと、きっと有効な情報が得られると 思いますヨ。 またまた、御世話になります。m(_ _)m シェルスクリプトのif文で、前のコマンドの終了結果を知りたい場 合はどうすればいいのでしょうか? 具体的にはこうです。 /#!usr/bin/sh vi text.txt if [ 条件(text.txtを更新したら) ];then date>>text.txt fi 条件のところでの指定法方が解からないのです。(^^ゞ #すげー初心者ですね←私 |
|
ありがとうございます。m(__)m>mmさん、68userさん やっぱり、CGIで全部自動というのは、難しそうですね。 教えて貰ったことを参考に作ってみます。また来ることがあるかも知れませんが その時はよろしくお願いします。m(__)m ではでは |
|
> takasiさん 僕がやるとすれば… sudoを使う 特定のユーザに対して、特定の権限(この場合root)で、特定のコマンドだけ 実行を許可するコマンド。例えば hoge というユーザだけ cat /etc/master.passwd を実行できる、と設定すれば、 % cat /etc/master.passwd Password: ***(rootのパスワード) (/etc/master.passwdの内容が表示される) となります。その後5分間以内(多分設定で変更可能)なら、再度同じコマンドを 打っても rootのパスワード入力を省けます。 wrapperを使う 普通スクリプトにはsuidビットを立てられません。でもバイナリなら可能です。 そこで、Cでwrapperを書き、その中でスクリプトを実行させるようにします。 % chmod 4755 wrapper % chown root wrapper としてwrapperを実行すると、root権限でスクリプトが実行されます。 suidperlを使う 普通スクリプトにはsuidビットを立てられませんが、perlだけは例外です。 % chmod 4755 perl-script % chown root perl-script とすれば、root権限でperl-scriptが動きます。 くらいでしょうか。2番目の方法のソースは、よろしければお見せしましょうか? |
|
ん〜、コマンドの status は $? を見ればいいですけど、 今試してみたところでは、更新してもしなくても、どちらも 0 を返してきました。正常終了は正常終了なので更新の有無は 関係ないのでしょう。 で、この場合は最終更新時刻が更新されたかを調べるとか、 /tmpにコピーして、それを編集させ、元のファイルとdiffする などするのがいいんじゃないでしょうか。 |
|
>ん〜、コマンドの status は $? を見ればいいですけど、 あれま、やっぱ甘かった!。 viの終了コードで判別しようと思ったんですが...、そうですね よく考えたら、保存しようがしまいが一応正常終了だから、それ では判別できませんね。(^^ゞ わざわざ試してもらってすいません。 #でも「$?」の方法が知らなかった... #ホント初心者です。(*^_^*) DOSの場合、終了コードはかなりいい加減だっただった記憶が 有ります。UNIXの各コマンドの場合正確にコードを返してくるの ですか?、それからどんな時にどんな終了コードが返るかは、man で調べる以外に基準の様なものはあるのでしょうか?。 #例えば正常終了だと0が返る等 /tmp/の方法でやってみます、もっと単純に出来ないかと思った のですが。(^^ゞ >2番目の方法のソースは、よろしければお見せしましょうか? この方法は、私も非常に興味があります是非お願いします。m(_ _)m |
|
gettimeofdayについて |