Cron 作业不运行 [英] Cron Job Doesn't Run
问题描述
我是使用 crontab 的新手,我一直在努力让一个简单的 cron 工作正常工作.cron作业的代码如下:
I am new to using crontab, and I've been trying to get a simple cron job working. The code for the cron job is as follows:
*/1 * * * * echo "job every minute"
所以只是为了概念验证,我希望每分钟都能看到这个打印出来.我曾尝试使用两者保存此 cron 作业
So just for proof-of-concept, I want to see this printed every minute. I have tried saving this cron job using both
sudo crontab -e
并通过在目录中保存 crontab 文件 (cronscript) 并按如下方式启用脚本:
and by saving a crontab file (cronscript) in a directory and enabling the script as follows:
crontab ~/Documents/MyProjects/cronscript
这是 cron 作业所在的路径.正如我通过键入
which is the path for where the cron job is located. Both of the identical jobs are saved properly, as I have verified by typing
sudo crontab -e
和crontab -e
and crontab -e
进入终端,它们都会出现.我确保在每个命令之后都保存了一个换行符,并使用
into terminal and they both appear. I made sure there was a new line character saved after each command, and I checked to make sure cron is running by using
pgrep cron
但是,我仍然没有将每分钟工作"打印到终端(每分钟),这是我认为这些命令应该做的.
However, I am still not getting "job every minute" printed to terminal (every minute) which is what I believe these commands should be doing.
我做错了什么?感谢您的帮助!
What am I doing wrong? Thanks for the help!
推荐答案
cronjob 运行得很好,但是 cron 守护进程(据我所知一般是守护进程)无法访问 stdout,因此无法将消息输出到终端.
The cronjob is running just fine, but the cron daemon (daemons in general as far as I know) have no access to stdout so cannot output messages to the terminal.
然而,要测试它,您可以使用
To test it you can, however, output what you want to a file using
*/1 * * * * echo "job every minute" >>$HOME/filename
每分钟将文本输出(并连接)到主目录中名为filename"的文件中.
which will output (and concatenate) the text to a file named "filename" in your home directory every minute.
这篇关于Cron 作业不运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!