我有一个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]''(引用) –