原理示意图
概述
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
基础语法
crontab [选项]
- 常用选项
选项 | 含义 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除所有用户的crontab任务 |
快速入门
写一个任务调度:
每小时的每分钟执行ls -l /etc/ >> /tmp/to.txt命令
*/1 * * * * ls -l /etc/ >> /tmp/to.txt
参数细节说明
- 5个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一小时中的第几分钟 | 0-59 |
第二个 * | 一天当中的第几个小时 | 0-23 |
第三个 * | 一个月中的第几天 | 0-31 |
第四个 * | 一年中的第几个月 | 1-12 |
第五个 * | 一周中的星期几 | 0-7(0和7都代表周日) |
- 特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间。 |
, | 代表不连续的时间。比如" 0 8,12,16 * * * "命令,就代表每天的8点0分,12点0分,16点0分执行一次命令 |
- | 代表连续的时间范围。比如" 0 5 * * 1-6 "命令,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表隔多久执行一次。比如" */10 * * * * "命令,代表每隔10分钟执行一次 |
- 特定时间执行任务案例
案例
-
案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
1.编写一个文件vim /home/mytask1.sh
date >> /tmp/mydate
2.给mytask1.sh一个执行的权限
chmod 744 /home/mytask1.sh
3.创建一个新的任务调度crontab -e
*/1 * * * * /home/mytask1.sh
4.成功一分钟后查看结果 more /tmp/mydate
-
案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
1.编写一个文件vim /home/mytask2.sh
date >> /tmp/mydate cal >> /tep/mycal
2.给mytask2.sh一个执行的权限
chmod 744 /home/mytask2.sh
3.创建一个新的任务调度crontab -e
*/1 * * * * /home/mytask2.sh
4.成功
-
案例3:每天凌晨2:00将mysql数据库testdb,备份到文件中。
1.编写一个文件vim /home/mytask3.sh
/ur/local/mysql/bin/mysqldump -uroot -p123456 testdb > /tmp/mydb.bak
2.给mytask3.sh一个执行的权限
chmod 744 /home/mytask3.sh
3.创建一个新的任务调度crontab -e
0 2 * * * /home/mytask3.sh
4.成功
crond相关指令
- conrtab-r:终止任务调度。
- crontab-1:列出当前有那些任务调度
- service crond restart [重启任务调度]
总结
编写任务调度步骤
1.编写shell脚本 vim mytask.sh
....相关脚本
2.给脚本赋予可执行权限 chmod 744 mytask.sh
3.创建任务调度 crontab -e
cron表达式 需要执行的脚本