首页 > 解决方案 > 在 crontab 中执行 ping 命令但没有输出

问题描述

crontab(用户的 crontab)配置如下:

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

重新启动后,生成了文件“test.log”,但它只是一个空文件。并grep CRON /var/log/syslog显示该ping命令已执行。任何人都知道问题是什么?

我尝试了一些我搜索的解决方案,例如更改ping/bin/ping设置HOME环境变量,但仍然无法正常工作。

标签: linuxcronping

解决方案


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

ping host.invalid > file.txt

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

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

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

推荐阅读