Linux 中的 Crontab:作业调度示例

什么是 crontab?

Cron 以希腊语单词“Chronos”命名,表示时间。它是一个系统进程,将根据特定计划自动执行任务。它是一组用于运行常规调度任务的命令。Crontab 代表“cron 表”。它允许使用作业调度程序(称为 cron)来执行任务。

Crontab 也是用于编辑该计划的程序的名称。它由 crontab 文件驱动,该文件是一个配置文件,指示要针对特定​​计划定期运行的 shell 命令。

为什么要使用 Cronjobs?

以下是在 Linux 中使用 Cronjobs 的原因:

  • 帮助操作系统按计划备份日志文件或数据库。
  • 删除旧日志文件
  • Archive 并清除数据库表
  • 发送任何通知电子邮件,如新闻通讯、密码过期电子邮件
  • 定期清理缓存数据
  • Crontab 是自动化 Unix 作业的理想选择。
  • 用于自动化系统维护

如何在 Linux 中使用 cron?

Linux系统 pack 有一个很有用的任务调度程序,名为 crontab。Crontab 之所以受欢迎,是因为它可以被安排以 root 身份运行自动化进程。因此,以 root 身份运行自动化进程使系统更改更加容易。您只需更改任务,然后等待任务重新启动即可。

Linux Crontab 格式

Linux的crontab有6个字段,前XNUMX个字段定义执行的时间和日期,第XNUMX个字段用于命令的执行。

Crontab 语法:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

Linux Crontab 格式

  • 体育运动 (*): 用于匹配
  • 定义范围: 允许您使用连字符来定义一个范围,如 1-10 或 30-40 或 jan-mar、mon-wed。
  • 定义多个范围: 允许您使用分隔命令定义各种范围,如 apr-jun、oct-dec。

如何添加/修改 Crontab

用户可以借助以下 crontab 命令编辑他们的 crontab 作业:

$ crontab -u -e 

上述命令将打开您的计算机系统的个人 crontab 配置,您可以使用默认文本编辑器进行编辑。

无需重新启动 crontab,因为当您使用以下命令时它会自动获取您的更改。

$ crontab -l

要删除 crontab 任务,请使用以下命令。

$ crontab -r

要在 crontab 中添加或更新作业,请使用下面给出的命令。

crontab -e

编辑其他用户的 crontab 的命令

crontab -u username -e

如何列出 Crontab

查看当前用户的 crontab 条目的命令

crontab -l

查看特定用户的 crontab 条目的命令:

crontab -u username -l

重要的 crontab 示例

以下是 Crontab 的一些重要示例

描述 命令
Cron命令执行各种调度作业。
下面给出的命令每天早上 7 点和下午 5 点执行。
0 7,17 * * * /scripts/script.sh
每 5 分钟执行一次 cron 的命令。
*/5* * * * *  /scripts/script.sh
Cron 调度程序命令可帮助你在每个 Monday 凌晨 5 点。此命令对于执行系统清理等每周任务很有帮助。
0 5 * * mon  /scripts/script.sh
命令以 3 分钟为间隔运行你的脚本。
*/3 * * * * /scripts/monitor.sh
用于安排在特定月份执行的 cron 任务的命令。
此命令用于运行 2 月、6 月和 9 月的任务。有时我们需要安排任务执行选定的每月任务。
* * * feb,jun,sep *  /script/script.sh
在选定日期执行的命令。此示例将运行每个 Monday 以及星期三下午 5 点。
0 17 * * mon,wed  /script/script.sh
此命令允许 cron 在每月第一个星期六执行。
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
命令以 6 小时为间隔运行脚本,因此可以按如下所示进行配置。
0 */6 * * * /scripts/script.sh
此命令计划任务在 Monday 和星期二。使用以下设置来执行此操作。
0 4,17 * * mon,tue /scripts/script.sh
命令安排 cron 每 15 秒执行一次。
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
命令按年度安排任务。
@yearly timestamp 设置为“0 0 5 1 *”。这将在每年的第五分钟执行任务。您可以使用它来发送新年问候。
@yearly /scripts/script.sh 
命令每月执行的任务。
@monthly timestamp 类似于“0 0 1 * *”。此命令表达式允许在每月的第一分钟执行任务。
@monthly /scripts/script.sh
使用单个 cron 执行多个任务的命令。
* * * * * /scripts/script.sh; /scripts/scrit2.sh
用于安排每周执行任务的命令。
@weekly 时间戳类似于“0 0 4 * sun”。这用于执行每周任务,例如系统清理等。
@weekly /bin/script.sh
任务将按计划每天执行。
@daily timestamp 类似“0 2 * * *”,每天第二分钟执行任务。
@daily /scripts/script.sh
允许每小时执行任务。
@hourly 时间戳类似于“0 * * * *”,该命令在每小时的第一分钟执行一次任务。
@hourly /scripts/script.sh
允许任务在系统重启时执行。
@reboot 表达式对于系统希望在系统启动时运行的任务很有用。这有助于自动启动后台任务。
@reboot /scripts/script.sh

概要:

  • Cron 的名字取自希腊语“Chronos”,表示时间。
  • Cronjobs 帮助操作系统按计划备份日志文件或数据库。
  • Linux 系统包有一个名为 crontab 的有用的任务调度程序,可以安排以 root 身份运行自动化进程。
  • Linux的crontab有6个字段,前XNUMX个字段定义执行的时间和日期,第XNUMX个字段用于命令的执行。