00 背景
我们经常需要设置任务在某个时间或每隔一段时间运行。这时候任务调度工具可以解决问题此类定时调度任务场景问题。本篇介绍Linux系统中的cron任务调度工具。
01 cron介绍
在linux系统中,有一个cron表文件,它存储了执行脚本路径或者命令和执行脚本时间。cron任务调度工具便是通过它来实现定时调度任务。
那么如何创建cron任务呢?
cron任务是存在于cron表中的,需要了解cron表的格式,格式为:分 时 日 月 工作日 命令。
按照cron表格式,创建一个cron任务。首先要编辑cron表,使用crontab -e
命令编辑cron表。
*/01 * * * * /home/hadoop/training/cron/print.sh
上面便是在cron表中创建了一个cron任务,接下来只要保存cron表,便可以定时调度该任务。
02 模拟训练
准备一个专门的任务文件存储cron任务,然后运行crontab 任务文件
命令,便可以定时调度该任务。
创建任务文件:
touch task.cron
写入以下内容:
*/01 * * * * /home/hadoop/training/cron/print.sh
上面的内容表示每分钟调度一次任务。查看print.sh
脚本内容。
脚本的功能是将执行脚本时间重定向到print.log日志文件中,我们使用下面命令监听文件内容的变化,验证是否成功进行定时调度。
tail -f /home/hadoop/training/cron/print.log
执行crontab task.cron
命令。观察日志文件内容变化。
可以看到cron定时调度任务成功。
补充
1.*
表示每个时间段都会执行。如果*
出现在对应"分 时 日 月 工作日"的位置,表示每分、每时、每日、每月、每个工作日。
2.如果在特定的时间段执行任务,就在对应格式位置上指定想要的时间段,并用逗号作为分隔符。
例:
* * 20,21 * * /home/hadoop/training/cron/print.sh
表示每个月20、21号执行任务。
3、如果想在特定的时间间隔执行任务,可以在对应格式位置上使用*/
。
例:
*/01 * * * * /home/hadoop/training/cron/print.sh
表示每隔一分钟执行一次任务。