我制作了一个名为的脚本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 -i
。arp-scan
需要须藤。我在 Fedora 20 上运行它。
答案1
cron
在非常小的环境和简化的路径下运行。
在设计为执行的脚本中始终是最安全的,cron
以确保所有命令都提供完整路径,或者脚本设置自己的 PATH 变量。
尝试添加命令的完整路径arp-scan
。