プロが教えるわが家の防犯対策術!

cronでifconfigコマンドを使用するスクリプトを実行すると値が取れないのですが、
なぜなんでしょうか?どうすれば値が取れるようになるのでしょうか?
OSはubuntu10.04を使っています。
直接実行した場合はファイル出力されるのですが、
cronで実行した場合は日付しか出力されません。
どなたかよろしくお願いします。

-----test.sh-----
date >> test.log
ifconfig >> test.log
-----------------

A 回答 (3件)

あ(^^;


脊髄反射で書いてしまった。。。

「/bin」は corn(8) の持っている $PATH に含まれていますね。
失礼しました。
すると、grep はちゃんと動いており出力が空なのには別の原因があるのでしょう。
(本題から外れそうなので踏み込むのはやめときます)

crontab に設定を施すよりはいちいちフルパスで書く方が簡単だったりしませんか?
「/sbin/」の6文字を書きたくない理由が思いつきません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
cronで実行されたifconfigを見るとハードウェアアドレスじゃなくてHWaddrになっていたため
grepされていませんでした。
man 5 crontab の5ってどうゆう意味ですか?

お礼日時:2010/05/18 21:57

いや、だから。


「/sbin/ifconfig」と書かなきゃ「ifconfig」だけでは動かないのだから
「grep」だけはで動かず「/bin/grep」と書く必要がある事に気付きましょうよ。

どうしてそうなのか(コマンドをフルパスで指定する事)は考えてもわからないかも知れませんが
逆に『通常はコマンドのパスは書かなくても実行できる』のはなぜだかわかりますか?

cron は bashrc などを読みません。$PATH などの変数は corn の中に(独自に)持っているものを使います。
しかしこれは設定ファイル適宜記述すればオーバーライドできます。
man 5 crontab を読んでください。
やってしまいがちな正しくない記述法がばっちり書かれています。
    • good
    • 1

ifconfigをフルパスで書いたらどうなりますか?



Ubuntuではifconfigがどこにあるかわからないんですが、/sbin/ifconfig あたりだとしたら、
/sbin/ifconfig >> test.log
に変更

この回答への補足

すいません。下記をcronで実行すると値が出力されません。
grepしなければちゃんと出力されるんだが・・・

date > test.log
/sbin/ifconfig | grep ハードウェアアドレス >> aaa.log

補足日時:2010/05/17 22:11
    • good
    • 0
この回答へのお礼

ありがとうございます。
/sbin/ifconfig >> test.log
にしたら出力されるようになりました。

/sbin/を書かなくても出力されるようにするにはどうしたら
いいですか?

お礼日時:2010/05/16 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!