在 crontab 中执行 ping 命令但没有输出

ping command excuted in crontab but no output

crontab(用户的crontab)配置是这样的:

@reboot ping 1.1.1.1>/home/username/test.log

重新启动后,生成了文件“test.log”,但它只是一个空文件。 而 grep CRON /var/log/syslog 表示执行了 ping 命令。 有人知道问题出在哪里吗?

我尝试了一些我搜索过的解决方案,例如将 ping 更改为 /bin/ping 或设置 HOME 环境变量,但仍然无效。

这是重现问题的简单方法:

ping host.invalid > file.txt

ping 将 运行 并显示错误,file.txt 将创建但为空。 这是因为 Unix 程序区分输出和错误,而您只是重定向输出。

要同时重定向错误,您可以使用:

@reboot ping 1.1.1.1 > /home/username/test.log 2>&1