我有一個bash腳本,做到這一點:不同的結果手動
nmap -sn 192.168.0.1-255 | grep -Eo 192.168.0.{1,3\}[0-9] > new.txt
date >> network_log
echo ---------------------------- >> network_log
cat new.txt >> network_log
掃描網絡,並追加結果到文件network_log與時間戳。 手動運行它後,network_log文件看起來像這樣:
Tue 13 Sep 2016 11:22:23 EDT
----------------------------
192.168.0.1
192.168.0.2
192.168.0.45
而cronjobs產生我network_log文件中的以下的輸出:
Tue Sep 13 17:46:00 EDT 2016
----------------------------
沒有IP結果。 注意:cronjob從root用戶運行,因此它具有掃描整個網絡所需的所有高程。
你是否用'sudo'試過了你的腳本,看它是否是有影響力的cron或root用戶? –
我實際上是從sudo cron和普通cron運行腳本,它們都產生相同的錯誤輸出。我使用sudo和常規模式手動運行我的腳本,它們產生相同的正確輸出。 – carrots
檢查環境變量差異。我會'grep -Eo'192 \ .168 \ .0 \。{1,3 \} [0-9]''(引用) –