这个 克朗塔布 是要按常规计划运行的命令列表,以及用于管理该列表的命令的名称。Crontab代表“cron表”,因为它使用作业调度器 克朗 执行任务; 克朗 它本身是以“chronos”命名的,这是希腊语中的“时间”一词。 克朗 是一个系统进程,它将根据设定的时间表自动为您执行任务。该计划称为crontab,也是用于编辑该计划的程序的名称。
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。
- 查看根Crontab条目:以根用户身份登录(su–Root)并执行Crontab-l。
- 要查看其他Linux用户的crontab条目:登录到root并使用-u{username}-l。
3.编辑Crontab条目 编辑当前登录用户的Crontab条目。要编辑crontab条目,请使用crontab-e。默认情况下,这将编辑当前登录的用户crontab。 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主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。