エコIPアドレスの問題

エコIPアドレスの問題

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.shtest.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/ifconfigifconfig

関連情報