Bash
回顯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.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