定时调度:设置某个时间点或时间段执行某些任务。例如凌晨备份数据库。
crontab 【常用选项】
-e:编辑
-l:查看/显示
-r:删除
案例
设置任务调度文件:/etc/crontab
设置个人任务调度,执行crontab -e 命令
接着输入任务到调度文件
如:*/1****ls -l /etc/ > /temp/to.txt
任务描述:每小时的每分钟执行ls -l /etc/ > /temp/to.txt命令
参数说明
第一个" * ":一小时当中的第几分钟,范围0-59。
第二个" * ":一天当中的第几小时,范围0-23。
第三个" * ":一个月当中的第几天,范围1-31。
第四个" * ":一年当中的第几月,范围1-12。
第五个" * ":一周当中个的第几个星期,范围0-7。
复杂的需求需要些脚本(shell)
特殊符号说明
" * ":代表任何时间,比如第一个" * "就代表一小时中的每分钟执行一次。
" , ":代表不连续的时间。比如“0 8,12,16 * * *”就代表每天的8点0分,12点0分,16点0分执行一次命令。
" - ":代表连续的时间,比如“0 8 * * 1-6”就代表周一到周六每天8点0分执行一次命令。
" /n ":代表每个多久执行一次,比如"/10 * * * *",代表每隔10分钟执行一次。
案例
- 45 22 * * * 命令:在22点45分执行命令。
- 0 17 * * 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分都会执行命令(周几和号最好不要同时出现)。
继续上案例(用脚本实现)
-
案例1:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate文件中
1)先创建一个文件mytask1.sh,内容为:date >> /tmp/mydate
2)给mytask1.sh一个可执行的权限
3)crontab -e 内容为: */1 * * * * >> mytask1.sh的路径 -
案例2:每隔1分钟,就将当前日期和日历信息,追加到 /tmp/mycal文件中
1)先创建一个文件mytask2.sh,内容为:date >> /tmp/mycal
cal >> /tmp/mycal
2)给mytask2.sh一个可执行的权限
3)crontab -e 内容为: */1 * * * * >> mytask2.sh的路径 -
案例3:每天凌晨2点,将mysql数据库testdb,备份到文件中mydb.bak。
1)先创建一个文件mytask3.sh
内容为:/usr/local/mysql/bin/mysql.dump -u root -proot testdb > /tmp/mydb.bak
2)给mytask3.sh一个可执行的权限
3)crontab -e 内容为: 0 2 * * * mytask3.sh的路径
网友评论