Linux中的“crontab”及其示例

这个 克朗塔布 是要按常规计划运行的命令列表,以及用于管理该列表的命令的名称。Crontab代表“cron表”,因为它使用作业调度器 克朗 执行任务; 克朗 它本身是以“chronos”命名的,这是希腊语中的“时间”一词。 克朗 是一个系统进程,它将根据设定的时间表自动为您执行任务。该计划称为crontab,也是用于编辑该计划的程序的名称。

null

Linux Crontab格式

MIN HOUR DOM MON DOW CMD

Crontab字段和允许的范围(Linux Crontab语法)

Field    Description    Allowed Value
MIN      Minute field    0 to 59
HOUR     Hour field      0 to 23
DOM      Day of Month    1-31
MON      Month field     1-12
DOW      Day Of Week     0-6
CMD      Command         Any command to be executed.

Cron作业示例 1.为特定时间安排作业

cron的基本用法是在特定时间执行作业,如下所示。这将在6月10日上午8:30执行完整备份shell脚本(完整备份)。

时间字段使用24小时格式。所以,早上8点用8,晚上8点用20。

30 08 10 06 * /home/maverick/full-backup

30-30分钟 上午8点至8点 10-10天 06-6个月(6月) *–一周中的每一天

2.查看Crontab条目

  • 查看当前登录用户的Crontab条目:要查看Crontab条目,请从unix帐户键入Crontab-l。 图片[1]-Linux中的“crontab”及其示例-yiteyi-C++库
  • 查看根Crontab条目:以根用户身份登录(su–Root)并执行Crontab-l。

    图片[2]-Linux中的“crontab”及其示例-yiteyi-C++库

  • 要查看其他Linux用户的crontab条目:登录到root并使用-u{username}-l。 图片[3]-Linux中的“crontab”及其示例-yiteyi-C++库

3.编辑Crontab条目 编辑当前登录用户的Crontab条目。要编辑crontab条目,请使用crontab-e。默认情况下,这将编辑当前登录的用户crontab。 图片[4]-Linux中的“crontab”及其示例-yiteyi-C++库 4.使用Cron为每分钟安排一个作业。 理想情况下,你可能不需要每分钟都安排一项工作。但是理解这个例子将帮助你理解其他的例子。

* * * * * CMD

*指所有可能的单位,即一年中每小时的每分钟。除了直接使用它,你会发现它在以下情况下非常有用。

当您指定*/5 in minute字段时,表示每5分钟一次。 当您指定0-10/2 in-minute字段时,表示前10分钟内每2分钟一次。 因此,上述约定可用于所有其他4个字段。 5.安排一项工作超过一次(例如一天两次)

下面的脚本每天进行两次增量备份。

此示例在每天的11:00和16:00执行指定的增量备份shell脚本(增量备份)。字段中以逗号分隔的值指定需要在所有提到的时间内执行命令。

00 11, 16 * * * /home/maverick/bin/incremental-backup

00–0分钟(一小时的最高峰) 上午11点、16点至11点和下午4点 *–每天 *–每个月 *–一周中的每一天

6.在一定时间范围内安排工作(例如仅在工作日)

如果您希望在特定的时间范围内安排每小时的作业,请使用以下命令。

  • Cron每天工作时间内的工作: 本例在上午9点到下午6点的工作时间内每天(包括周末)检查数据库的状态
    00 09-18 * * * /home/maverick/bin/check-db-status
    

    00–0分钟(一小时的最高峰) 09-18–上午9点、上午10点、上午11点、上午12点、下午1点、下午2点、下午3点、下午4点、下午5点、下午6点 *–每天 *–每个月 *–一周中的每一天

  • 工作日工作时间内的Cron作业: 本例在工作时间上午9点到下午6点,在每个工作日(即不包括Sat和Sun)检查数据库的状态。
    00 09-18 * * 1-5 /home/maverick/bin/check-db-status
    

    00–0分钟(一小时的最高峰) 09-18–上午9点、上午10点、上午11点、上午12点、下午1点、下午2点、下午3点、下午4点、下午5点、下午6点 *–每天 *–每个月 1-5-周一、周二、周三、周四和周五(每个工作日)

7.每10分钟安排一次后台Cron作业。 如果要每10分钟检查一次磁盘空间,请使用以下命令。

*/10 * * * * /home/maverick/check-disk-space

它全年每10分钟执行一次指定的命令检查磁盘空间。但您可能需要仅在特定时间内执行命令,反之亦然。上面的例子展示了如何做这些事情。我们不需要在5个字段中指定值,而是可以使用下面提到的单个关键字来指定。

在某些特殊情况下,您可以使用@来代替上面的5个字段,然后加上关键字,例如重新启动、午夜、每年、每小时。

Cron特殊关键字及其意义

Keyword    Equivalent
@yearly    0 0 1 1 *
@daily     0 0 * * *
@hourly    0 * * * *
@reboot    Run at startup.

8.使用@yearly为每年的第一分钟安排作业 如果希望在每年的第一分钟执行作业,那么可以使用@yearal cron关键字,如下所示。这将在每年1月1日00:00使用年度维护外壳脚本执行系统年度维护。

@yearly /home/maverick/bin/annual-maintenance

9.使用@monthly在每个月初安排Cron作业 它和上面的@year类似。但使用@monthly cron关键字每月执行一次命令。这将在每月1日的00:00执行shell脚本磁带备份。

@monthly /home/maverick/bin/tape-backup

10.使用@daily来安排每天的后台工作 使用@daily cron关键字,这将在每天的00:00使用cleanup logs shell脚本执行每日日志文件清理。

@daily /home/maverick/bin/cleanup-logs "day started"

11.在每次重新启动后使用@reboot执行linux命令 使用@reboot cron关键字,这将在每次启动机器后执行一次指定的命令。

@reboot CMD

参考: cron的Linux手册页 本文由 基什莱·维尔马 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享