我正在尝试运行一个 cron 作业,该作业运行一个脚本以每分钟在终端上打印一条消息。
该脚本非常简单,只是为了测试这个想法:
#!/bin/bash
echo "Hello World"
以下是我的 crontab 中的内容:
* * * * * /etc/cron.hourly/script1.sh
我反复检查了脚本是否具有正确的权限 (755),所以我不明白为什么它不起作用。我做错了什么?
答案1
cron 任务不与任何终端相关联。输出要么被丢弃,要么可能通过邮件发送给用户(如果已配置)。
最好将作业重定向到文件,然后打开终端读取文件,如下所示:
#!/bin/bash
echo "Hello World">/home/myname/script1.sh.out 2>&1
这会将输出和错误发送到文件。如果有多个命令,最好将整个脚本输出发送到文件,如下所示:
#!/bin/bash
exec >/home/myname/script1.sh.out 2>&1
echo "Hello World"
或者在 crontab 中执行如下操作:
* * * * * /etc/cron.hourly/script1.sh>/home/myname/script1.sh.out 2>&1
从终端,您可以运行“tail”来显示输出:
tail -f /home/myname/script1.sh.out