使用 arp-scan 的 Sudo cron 作业给出空输出

使用 arp-scan 的 Sudo cron 作业给出空输出

我制作了一个名为的脚本hello.sh,它包含以下内容:

#!/bin/bash

printf "$( arp-scan --interface=eth0 --localnet )\n"
printf "test\n"

在使其可执行 ( chmod o+x) 并运行它 ( ./hello.sh >> file.txt) 后,我得到了正确的输出file.txt(即 arp 扫描结果和字符串“test”)。但添加以下行后 crontab -e

*/1 * * * *  /path/to/hello.sh >> /path/to/file.txt

我得到以下输出:

测试

测试

测试

正如您所看到的,该arp-scan部分返回了一个空字符串。如何让 arpscan 与 cron 一起工作?

附加信息:以 sudo ( ) 身份登录后,一切就完成了sudo -iarp-scan需要须藤。我在 Fedora 20 上运行它。

答案1

cron在非常小的环境和简化的路径下运行。

在设计为执行的脚本中始终是最安全的,cron以确保所有命令都提供完整路径,或者脚本设置自己的 PATH 变量。

尝试添加命令的完整路径arp-scan

相关内容