怎样每 5 分钟、秒、小时、天、月运行一次 Cron
问题:如何使用 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 个月,则应使用逗号。
- 点赞
- 收藏
- 关注作者
评论(0)