我尝试创建一个非常简单的 cron 任务,将“Hello World”回显到名为/tmp/example.txt.
你可以从截图中看到,我试过:
28 23 * * * echo "Hello World" >> /tmp/example.txt
28 23 * * * root /bin/bash echo "Hello World" >> /tmp/example.txt
Run Code Online (Sandbox Code Playgroud)
同样在屏幕截图中,您可以看到日期。我还尝试在 cron 任务中获取确切日期(例如:28 23 29 11 4),但这也不起作用。
我也尝试使用实际文件
28 23 * * * ./pingstuff
Run Code Online (Sandbox Code Playgroud)
该pingstuff文件只是谷歌坪。我可以运行这个文件并且它正确执行。但是,当我尝试在 crontab -e 中使用它时,在预定时间没有任何反应。(每次尝试后时间已相应更改。)
我以超级用户身份登录。我有权读/写/执行所有这些文件。我不确定我做错了什么。
n.s*_*.st 13
cronjob 可能无法执行,因为
要检查守护程序是否正在运行,请尝试service cron status或systemctl status cron(服务管理器取决于您的发行版)。守护进程也可能被称为稍微不同的东西,比如crond或cronie。
如果它没有运行,启动它(替换status用start)。
如果它正在运行,请继续检查相关日志文件以查看作业是否实际运行。根据您的发行版,这可能会记录到/var/log/syslog、/var/log/messages、特定于守护程序的文件(如/var/log/cron)或 systemd 二进制日志文件(journalctl -u cron以查看)。每次执行作业时,您应该看到一行。
当测试的crontab,设定的执行时间这更在未来超过一分钟。一些 cron 实现“预先计划”了要运行的任务,即它们会在 12:33:00 决定在 12:34:00 运行什么,因此如果您34 12 …在 12 点添加cronjob,您将错过机会之窗:33:30。
如果作业运行但没有产生预期的结果,请尝试从 crontab 手动运行命令,作为同一用户,使用相同的 shell(通常是简约的/bin/sh)。
一个常见的陷阱(尽管这里不是这种情况)是%命令中的字符:它们被 cron 特殊处理,需要转义 ( \%) 才能被实际命令调用看到。
大多数 cron 实现还将每个 cronjob 的输出(如果有)作为电子邮件发送。如果您尚未设置通过 Internet 发送邮件,则这些邮件应存储在本地并可使用该mail命令读取。
你最大的问题是这/bin/bash echo "Hello World"
不是一个有效的命令。它寻找一个名为echo. 试试吧/bin/bash -c 'echo "Hello World"'。
第二个问题是您应该为pingstuff.
引起我注意的第三个问题是/tmp/example.txt
已经存在(cat命令没有收到错误消息)。你确定你有写权限吗?(当然,如果您以 root 身份运行,那应该不是问题。)
另请参阅Ubuntu 14.04, 16.04, 18.04 Cron job does not execute,尽管它可能无关。
| 归档时间: |
|
| 查看次数: |
2749 次 |
| 最近记录: |