1 任务调度原理
任务调度:是指系统在某个时间执行的特定的命令或程序,一般分两类:
-
系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等。
-
用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
2 crontab 命令
crontab [选项]
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
设置任务调度示例:
每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
crontab -e
*/1 * * * * ls –l /etc/ > /tmp/to.txt
3 参数说明
-
五个占位符说明
占位符 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” | 一天当中的第几个小时 | 0-23 |
第三个“*” | 一个月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期日) |
-
特殊符号说明
symbol | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, | 代表不连续的时间。比如“0 3,10,18 * * * 命令”,就代表在每天的3点0分,10点0分,18点0分都执行一次命令 |
- | 代表连续的时间范围。比如“0 5,* * 1-6命令 ”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一次命令。 |
-
特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周1的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月的1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行一次命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1命令 | 每月1号和15号,每周1的0点0分都会执行命令,星期几和几号最好不要同时出现 |
4 应用实例
每隔1分钟,就将当前的日期信息, 追加到/tmp/mydate文件中。
-
方式一:直接在crontab中写命令
-
方式二:shell脚本
1)先编写一个文件 /home/aci/test/mydate.sh
2)给 mydate.sh 一个可以执行权限
3)在crontab中设置执行时间以及对应的脚本
4)查看结果