怎样每 5 分钟、秒、小时、天、月运行一次 Cron

举报
Tiamo_T 发表于 2021/09/08 10:33:54 2021/09/08
【摘要】 问题:如何使用 cron 作业在 Linux 中以特定时间间隔执行某些 shell 脚本?提供使用不同时间段的示例。答: Crontab 可用于调度在某些内部运行的作业。此处的示例显示了如何使用不同的时间间隔执行 backup.sh shell 脚本。另外,不要忘记阅读我们之前的crontab文章,其中包含 15 个实际示例,还解释了可以在 crontab 中使用的 @monthly、@da...

问题:如何使用 cron 作业在 Linux 中以特定时间间隔执行某些 shell 脚本?提供使用不同时间段的示例。

答: Crontab 可用于调度在某些内部运行的作业。此处的示例显示了如何使用不同的时间间隔执行 backup.sh shell 脚本。

另外,不要忘记阅读我们之前的crontab文章,其中包含 15 个实际示例,还解释了可以在 crontab 中使用的 @monthly、@daily、.. 标签。

1. 每 5 分钟执行一次 cron 作业

第一个字段是分钟。如果在此字段中指定 *,它将每分钟运行一次。如果您在第一个字段中指定 */5,它将每 5 分钟运行一次,如下所示。

*/5 * * * * /home/ramesh/backup.sh

注意:同理,每10分钟使用*/10,每15分钟使用*/15,每30分钟使用*/30等。

2.每5小时执行一次cron作业

第二个字段是小时。如果在此字段中指定 *,它将每小时运行一次。如果您在第二个字段中指定 */5,它将每 5 小时运行一次,如下所示。

0 */5 * * * /home/ramesh/backup.sh

注意:同理,每2小时使用*/2,每3小时使用*/3,每4小时使用*/4,以此类推。

3. 每 5 秒执行一次作业

Cron 作业不能用于以秒为间隔安排作业。即您不能安排 cron 作业每 5 秒运行一次。另一种方法是编写一个在其中使用“sleep 5”命令的 shell 脚本。


使用bash while 循环创建一个 shell 脚本每 5-seconds.sh ,如下所示。

$ cat every-5-seconds.sh
#!/bin/bash
while true
do
 /home/ramesh/backup.sh
 sleep 5
done

现在,使用nohup在后台执行这个 shell 脚本,如下所示。即使在您退出会话后,这也会继续执行脚本。这将每 5 秒执行一次您的 backup.sh shell 脚本。

$ nohup ./every-5-seconds.sh &

4. 每第 5 个工作日执行一次作业

这个例子不是关于“每 5 天”安排一次。但这是为了安排“每第 5 个工作日”。

第 5 个字段是 DOW(星期几)。如果您在此字段中指定 *,它将每天运行。要每周五运行,请在此字段中指定周五的 5。

以下示例每周五午夜运行 backup.sh。

0 0 * * 5 /home/ramesh/backup.sh
(or)
0 0 * * Fri /home/ramesh/backup.sh

您可以使用用户编号或对应的三个字母缩写来表示工作日,如下所示。

  • 0=Sun
  • 1=Mon
  • 2=Tue
  • 3=Wed
  • 4=Thu
  • 5=Fri
  • 6=Sat

注意:养成使用 Fri 而不是 5 的习惯。请注意数字以 0 开头(不是 1),0 代表 Sun(不是 Mon)。

5. 每 5 个月执行一次工作

没有直接的说法“每 5 个月”,您必须指定要运行该作业的具体月份。您可能希望在第 5 个月(5 月)和第 10 个月(10 月)运行该作业。

第四个字段是月份。如果您在此字段中指定 *,它将每月运行一次。要针对特定​​月份运行,您必须指定与该月份对应的数字。例如,要在 5 月和 10 月运行作业,您应该指定 5,10(或)您可以简单地使用月份的 3 个字母首字母缩写词并指定 May,Oct。

第三个字段用于 DOM(月中的日期)。如果您在此字段中指定 *,它将在每月的每一天运行。如果您在本月指定 1,它将在本月的 1 日运行。

以下示例每年运行两次 backup.sh。即 5 月 1 日午夜和 10 月 1 日午夜。

0 0 1 5,10 * /home/ramesh/backup.sh
(or)
0 0 1 May,Oct * /home/ramesh/backup.sh

注意:不要在第 4 个字段中指定 5-10 的错误,即从第 5 个月到第 10 个月。如果您只想要第 5 个月和第 10 个月,则应使用逗号。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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