如何使用crontab来安排只在工作日运行的任务

2,800 阅读3分钟

对于大多数组织来说,你只在工作日工作--周一到周五。在这种情况下,有些任务只应该在工作日执行,而不是在周末。它可能是一个任务,如发送电子邮件,检查考勤,或创建备份。不管是什么任务,都有办法将其自动化,只在工作日的特定时间执行。为了实现这一点,你应该使用Linux的cron工具。如果你不知道如何使用crontab来安排一些只在工作日运行的任务,请继续阅读以了解情况。

如何在Linux和Unix上使用Cron安排任务

有多种方法可以使用cron来安排任务。但常见的方法是指定日期和时间。要做到这一点,需要执行一个指定的命令。秘诀在于利用crontab命令的5个字段来定义该命令应该在哪一天执行。

这里,技巧在于使用特殊字符,特别是连字符(-),它提供了一个用于特定字段的值的列表。

crontab的语法如下。

Min Hour Day-of-month Month Day-of-week [command]

我们的重点是一周中的一天。允许的值是**0到6,**其中0是星期天,6是星期六。因此,为了指定一个只在工作日运行的命令,我们把星期几设置为1-5,没有空格。

该命令将是:

* * * * 1-5 [command]

给定的语法没有指定命令应该执行的具体时间。如果你需要设置它在每个工作日的上午10:00运行,那么命令将是:

0 10 * * 1-5 [command]

现在,通过运行下面的命令,在你的crontab文件的底部添加以下命令。

crontab -e

保存该文件并退出。

现在你有一个针对当前用户的cron job。如果你像这样运行一个脚本,确保给出它的完整路径。

在工作日运行命令的其他选项

有多种方法可以设置一个在工作日运行的命令。让我们举几个例子。

1.某一月份的工作日

不是每个月都是工作天。因此,你可能希望只在某个特定月份执行你的cron job。为此,你可以通过使用月号来指定月份,其中1代表一月。要想只在一月的上午10:00运行相同的命令,请改变它以反映下面的命令。

0 10 * 1 1-5 [command]

2.平日和某月的特定日期

一些任务可以被安排在某个月的某一天运行,只要是工作日。例如,你可以设置一个备份脚本,在1月5日的工作日和指定时间运行。这方面的命令将是。

0 10 5 1 1-5 [command]

在前面的例子中,我们指定命名的脚本要在1月5日星期一到星期五的上午10点执行。

最重要的是,你可以改变各个字段来调整命令只在工作日执行的时间。你可以选择它应该在哪个月运行或指定一个范围。此外,你可以设置准确的时间或在特定的时间段使用一个间隔,以符合你的需要。

总结

我们介绍了如何使用crontab来安排一个只在工作日运行的工作。此外,我们还学习了其他方法,你可以玩弄其他字段,以便更具体地确定你的命令应该在哪一天、哪一小时、哪一分钟和哪一月运行。试试吧!