Bash

回顯IP地址問題

  • November 8, 2017

我正在嘗試創建將每分鐘從 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

但是,當我創建這樣一個 cron 作業時:

* * * * * /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地址?**你有什麼主意嗎?

date可能/bin/date並且是cron 作業的預設值$PATH,這與$PATH使用者登錄時的設置不同。

ifconfig很可能/sbin/ifconfig哪個不在$PATH

更改為在 cron中執行ifconfig的顯式完整路徑(例如)。/sbin/ifconfig``ifconfig

引用自:https://unix.stackexchange.com/questions/403336