你会犯这些 Crontab的错误吗?
【摘要】 为什么我的 cron 作业没有在指定时间执行?
cron 作业无法执行的原因可能有很多。让我们了解一下 cron 作业未在指定时间运行的 5 个重要原因以及如何解决这些问题。
为什么我的 cron 作业没有在指定时间执行? cron 作业无法执行的原因可能有很多。让我们了解一下 cron 作业未在指定时间运行的 5 个重要原因以及如何解决这些问题。
1. 对时间字段的误解和指定错误的值。
对时间字段的误解,以及未提及预期/预期时间的时间字段中的给定值。
例如,要在晚上 8 点执行命令,您应该以 24 小时格式指定时间。即 8 PM 是 20 而不是 8,如下所示。
0 8 * * * /home/ubuntu/full-backup
[Note: The is wrong for 8 p.m]
0 20 * * * /home/ubuntu/full-backup
[Note: This is correct for 8 p.m]
2.crontab中Shell脚本或命令的路径无效
确保在 crontab 中指定了 shell 脚本的完整路径。
0 8 * * * tape-backup
[Note: Invalid. No full path specified]
0 8 * * * /home/debian-os/bin/tape-backup
[Note: Valid. This is correct with full path]
注意:如果您不想在 crontab 中提供完整路径,请确保在 crontab 中添加 PATH 变量
3. Cron中没有对Shell脚本的执行权限
您可能已经给出了具有正确路径的正确命令,但该命令可能没有执行权限。如果您使用任何 Unix 标准命令,那么默认情况下它将具有执行权限设置。
但是,如果您正在使用某些用户定义的命令(shell 脚本),请确保为其授予执行权限,如下所示。
*/15 * * * * /home/fedora-os/check-disk-space
[Note: Executes check-disk-space every 15 minutes]
# cd /home/fedora-os
# chmod u+x check-disk-space
4. Cron 作业命令或 Shell 脚本中的 %age
如果命令中包含 %,则您的命令将不会被执行。请参阅我们之前的Crontab %age 问题常见问题解答以了解如何解决此问题。
5. 不允许系统管理员执行 Cron 作业
系统管理员可以决定哪些用户可以运行 cron 作业,哪些用户不能。因此,为了拒绝用户执行 cron 作业,系统管理员可能已将您的用户名放在 /etc/cron.deny 文件中。
如果您有 root 权限,请检查 /etc/cron.deny 文件以确保您的姓名未在其中列出。如果已列出,请编辑该文件并删除您的姓名。如果您没有 root 权限,请联系您的系统管理员。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)