我有一个简单的脚本,并要求 crontab 执行该脚本。在脚本中,我有 2 个命令要运行并将输出附加到文件。只有一个命令按预期运行。但是,如果我以“root”身份自己运行脚本,脚本就会运行。所有机器、RHEL、Ubuntu Server/Desktop 和 Fedora 都有相同的结果。以下是我的脚本和crontab -l
。
我已经研究并尝试了所有方法,甚至设置了$PATH
,但没有任何效果。不会service httpd status
运行。
#!/bin/bash
#check httpd status and append to file
service httpd status >> /path/to/file;
#check cupsd status and append to file
netstat -punta | grep cupsd >> /path/to/file;
exit
计划任务:
*/1 * * * * /usr/local/bin/script.sh
答案1
解决方案:
不要运行“service httpd status”,而是运行“/etc/init.d/httpd status
运行起来非常完美。我之所以关注这个是因为尝试在 Ubuntu 14.04.2 LTS 中运行它,我查看了 cron 日志中的错误,在网上找到了错误并替换了上面的内容。