添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Crontab文件 存储 Linux 中的 Cron 计划。Cron 计划 (cron) 以固定的时间、日期和间隔定期运行。它在 Windows 中的等效项是计划任务。所有重复性任务都可以使用 cron 来安排。Crontab 文件是配置文件,其中包含有关要执行的时间和命令/脚本的信息。

之前有一篇文章介绍了 crontab的使用 ,这里再补充下更多的例子来说明。

Crontab 语法

crontab 文件中的每一行代表一个计划。它包含 五个字段 ,后跟要执行的 shell 命令 或脚本

* (Minute) *(Hour) * (Day of the Month) *(Month of the Year) *(Day of the Week) username 
crontab 文件 - 代表一个工作

定义多个值或范围

要定义多个值和范围,请使用逗号 (,) 和连字符 (-)。星号 (*) 匹配任何内容。例如,要显示多个值,请使用 1,2,3 或 mon,tue,wed,范围可以使用 1-3 或 mon-wed。

如何使用 Crotab

crontab 命令用于打开和编辑/添加 cron 计划。在 Linux 上运行的 cron 守护程序在 crontab(cron 表)中定义的时间执行计划计划。主要的系统范围的 crontab 文件是 /etc/crontab。

Cron 默认 安装在大多数 Linux 发行版中。Linux 系统中的每个用户都可以管理自己的 cron 计划。每个用户 cron 都存储在 /var/spool/cron/crontabs/ 下。cron 守护进程同时运行用户和系统 crontab。

Cron 守护程序定义了一些默认的 $PATH,您可以在 /etc/crontab 中找到它。如果未定义使用绝对路径或添加到 cron $PATH 变量。

默认情况下,Cron 邮件通知会发送给 crontab 的所有者。要更改此设置,请编辑 MAILTO 环境变量。

Cron 日志 存储在Ubuntu/Debian 系统上的 /var/log/syslog 和Redhat/Rocky Linux 上的 /var/log/cron中。 您可以使用 grep 命令过滤日志文件以验证 cron 计划是否成功运行。

编辑/添加 Crontab

要编辑(现有计划)或添加新的 cron,请使用 crontab -e 命令。这将为当前用户打开一个编辑器。

$ crontab -e

要编辑另一个用户 crontab 文件,请键入:

$ crotab -u username -e

或者只需以该用户身份登录运行 crontab -e 命令。

列出 Cron 计划

要列出当前用户的所有计划,请键入:

$ crontab -l

要列出指定用户的所有 cron 计划,请键入:

$ crontab -u -l 

删除cron计划

要删除当前用户的所有 cron 计划,请执行以下命令:

# crontab -r

注意:这将删除所有 cron 计划而不要求确认。

如果要交互删除,需要使用以下命令:

# crontab -ir

Crontab 计划示例

让我们检查一些用于安排 cron 计划的 crontab 示例。

每 12 小时运行一次 cron 计划

这有助于定期进行系统检查或备份。要安排任务每 12 小时运行一次,请键入:

0 */12 * * * /scripts/test.sh

每5分钟运行一次cron计划

有时您需要每 n 分钟监控一次系统。使用以下表达式每 5 分钟运行一次任务。

*/5 * * * * /scripts/test.sh

每天凌晨2点运行cron计划

每天的备份可以安排在特定的时间。以下表达式每天凌晨 2 点运行 cron 计划。

0 2 * * * /script/test.sh

要在每天下午 2 点安排 cron 计划,cron 使用 24 小时制。

0 14 * * * /script/test.sh

每天12:30运行cron计划

30 12 * * * /script/test.sh

每分钟运行一次cron计划

例如,您有一个脚本需要每分钟运行一次,请使用以下表达式。

* * * * * /scripts/test.sh

在特定分钟运行cron计划

使用以下 cron 表达式在第 2、15 和 30 分钟运行脚本。

2,15,30 * * * * /scripts/test.sh

运行cron计划,每周六凌晨1点运行

这有助于您在周六的特定时间运行备份。以下表达式有助于在每个星期六凌晨 1 点执行 cron 计划。

0 1 * * sat /scripts/test.sh

运行 cron 计划以在特定月份运行

在 1 月、4 月和 6 月的第 1 天的 01:00 运行 cron 计划。

0 1 1 jan,apr,jun *  /script/test.sh 

在选定的日期运行 cron 计划

要在选定的日子(例如周六和周日)运行 cron 计划,请使用:

0 4 * * sat,sun  /script/test.sh

在一天中的特定时间运行 cron 计划

从 9 点到 17 点,每小时的第 0 分钟

0 9-17 * * * /script/test.sh

每周六周日运行两次cron计划

Cron 计划允许在特定日期的特定时间运行任务

0 2,23 * * sat,sun /scripts/test.sh

在周一到周五的范围内运行 cron 计划

从周一到周五,每周的每一天的 02:00。

0 2 * * mon-fri /scripts/test.sh

每月运行cron计划

您可以使用 @monthly 来使用快捷方式,而不是使用 0 0 1 * *。它在每月的第一天 00:00 运行。或者,您可以将脚本放在 /etc/cron.monthly/ 下。

@monthly /scripts/test.sh

每周运行cron计划

除了使用 0 0 * * mon,您还可以使用 @weekly 的快捷方式。它在星期一的 00:00 运行。或者,您可以将脚本放在 /etc/cron.weekly/ 下。

@weekly /scripts/test.sh

每天运行cron计划

您可以使用@daily 的快捷方式,而不是使用 0 0 * * *。它每天00:00运行。或者,您可以将脚本放在 /etc/cron.daily/ 下。

@daily /scripts/test.sh

每小时运行一次cron计划

除了使用 0 */1 * * *,您可以使用 @hourly 的快捷方式。它在每小时的 0 分钟后运行。或者,您可以将脚本放在 /etc/cron.hourly/ 下。

@hourly /scripts/test.sh

重启时运行 cron 计划

要在每次系统重新启动时运行任务,请使用 @reboot 字符串。该脚本将在重新启动后执行。

@reboot /scripts/test.sh

每30秒运行一次cron计划

Cron 只允许运行至少 60 秒。没有直接的方法来安排计划每 30 秒运行一次。

但是我们可以通过将延迟增加 30 秒来解决问题。

* * * * /scripts/run.sh * * * * 睡眠 30;/scripts/run.sh

运行一个cron计划并重定向输出

这将每 3 分钟运行一次 php 脚本并将输出重定向到一个文件。

*/3 * * * * /usr/bin/php /script/run.php >> /var/log/run.log

运行cron计划执行多条命令

要运行 cron 来执行多个命令,请在命令之间使用运算符 &&。

0 */12 * * Sun command1 && command2

备份 cron 计划

要备份 cron,请使用以下命令

# crontab -l > /backup/cron/root-bckup

要备份特定用户的 cron,请键入:

# crontab -u userName -l > /backup/cron/user-bckup.txt

要从备份文件中恢复 cron,只需使用:

# crontab /backup/cron/root-backup.txt

我们了解了 Linux 中的 crontab 以及安排 cron 计划的示例。

音乐神评论

    公子向北走-李春花
    “你永远都不会知道 你在路上随便见到的路人甲 是别人做梦都想见到的人” 再谈记忆-盘尼西林
    “当你嫌一个女生裙子短的时候,你就真的爱上她了。” 小生不才-大胆
    “听过最撩人的一句话 “我之前没有爱过别人 你是第一个 我怕我做得不好 让你觉得爱情不过如此” 一如既往-熊子先生
    “民谣很好听 但小酒馆的酒并不便宜 就好像你稍不努力 连情怀都养不起”
    “大概是因为我们都生活在必须要为了活下去而努力奔波的年代 明明每个人都在受委屈 却始终不愿意诉说也不习惯倾听”