cronで毎分実行されるデフォルトのスクリプトを作成しようとしています。スクリプトはscript.sh
次のとおりです。
#!/bin/bash
DATE=`date +"%Y-%m-%d %H:%M:%S"`
IP=`ifconfig | grep "inet addr" | awk --field-separator ':' '{print $2}' | awk '{print $1}' | head -1`
echo "$DATE $IP" >> test.log
" "と入力してこのスクリプトを実行すると、./script.sh
test.logはこの形式のIPアドレスを取得します(それは問題ではありません):
2017-11-08 16:33:33 10.0.0.1
2017-11-08 16:34:33 10.0.0.1
2017-11-08 16:35:33 10.0.0.1
ただし、次のようにクローンジョブを作成すると、
* * * * * /path/to/my/script.sh
test.logには日付のみがあります。
2017-11-08 16:36:13
2017-11-08 16:37:13
2017-11-08 16:38:13
しかし、なぜ?なぜIPアドレスがないのですか?どんなアイデアがありますか?
答え1
date
可能/bin/date
です$PATH
クローン操作のデフォルト値$PATH
、ユーザーがログインしたときの設定とは異なります。
ifconfig
おそらく/sbin/ifconfig
そうではありません$PATH
。
cronで実行するifconfig
には、明示的なフルパス(たとえば)に変更します。/sbin/ifconfig
ifconfig