在 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
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