你会犯这些 Crontab的错误吗?

举报
Tiamo_T 发表于 2021/12/26 16:21:32 2021/12/26
【摘要】 为什么我的 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。