1、原理示意图
可在 crontab 中进行定时任务的设置。
2、概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
- 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
3、基本语法
crontab [选项]
3.1、常用选项
参数 | 作用描述 |
---|---|
-e | 编辑 crontab 任务 |
-l | 查询 crontab 任务 |
-r | 删除当前用户的所有 crontab 任务 |
4、快速入门
4.1、任务的要求
设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ >> /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ >> /tmp/to.txt 命令
4.2、步骤如下
- cron -e
- */ 1 * * * * ls -l /etc >> /tmp/to.txt
- 当保存退出后就程序。
- 在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt
4.3、参数细节说明
4.3.1、5个占位符说明
位置 | 含义 | 范围 |
---|---|---|
第1个 “*” | 一小时当中的第几分钟 | 0—59 |
第2个 “*” | 一天当中的第几小时 | 0—23 |
第3个 “*” | 一个月当中的第几天 | 1—31 |
第4个 “*” | 一年当中的第几月 | 1—12 |
第5个 “*” | 一周当中的星期几 | 0—7(0、7代表星期日) |
4.3.2、特殊符号的说明
特殊符号 | 含 义 |
---|---|
* | 代表任何时间。比如第一个“*”就是代表一小时中每分钟都执行一次的意思; |
, | 代表不连续的时间。比如“0 8,12,16 * * *”命令,代表在每天的8点0分,12点0分,16点0分执行一次; |
- | 代表连续的时间范围;比如“0 5 * * 1-6”,代表在周一到周六的凌晨5点0分执行 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * *”,代表每隔10分钟执行一次 |
4.3.3、特定时间执行任务案例
时间 | 含 义 |
---|---|
35 22 * * * | 在 22点 35分执行命令 |
0 19 * * 1 | 每周 1的 19点 0分执行命令 |
0 6 1,16 * * | 每月的 1号和 16号的 6点 0分执行命令 |
50 5 * * 1-5 | 每周 1到周 5的 5点 50分执行命令 |
*/10 3 * * * | 每天的凌晨 3点,每隔 10分钟执行一次 |
0 0 1,15 * 1 | 每月 1号和 15号,每周 1的 0点 0分都会执行命令。 |
注意:星期几和几号最好不要同时出现,因为它们定义的都是天。非常容易让管理员混乱。
4.4、任务调度应用实例
4.4.1、案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
- 先编写一个文件 /home/mytask1.sh date >> /tmp/mydate
- 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask1.sh - crontab -e
- */1 * * * * /home/mytask1.sh
- 成功
4.4.2、案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中
- 先编写一个文件 /home/mytask2.sh
date >> /tmp/mycal cal >> /tmp/mycal - 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask2.sh - crontab -e
- */1 * * * * /home/mytask2.sh
- 成功
4.4.3、每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中 mydb.bak
- 先编写一个文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
- 给 mytask3.sh 一个可以执行权限
chmod 744 /home/mytask3.sh
- crontab -e
- 0 2 * * * /home/mytask3.sh
- 成功
5、crond 相关指令
- conrtab –r:终止任务调度。
- crontab –l:列出当前有那些任务调度
- service crond restart [重启任务调度]
网友评论