在一些时候我们需要进行定时任务,这时候就用到了crond了。
1、基本语法
crontab [选项]
- e : 编辑定时任务
- l : 查询定时任务
- r : 删除当前用户的所有crontab任务
2、参数说明
以下面定时任务为例:
*/1 * * * * ls –l/etc/ > /tmp/to.txt
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一个小平中的第几分钟 | 0-59 |
第二个 * | 一天中的第几个小时 | 0-23 |
第三个 * | 一个月中的第几天 | 1-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分钟就执行一遍命令 |
举例说明
时间 | 含义 |
---|---|
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分钟执行一次命令 |
3、实际案例
案例1:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
方式一:执行 crontab –e 命令。输入定时任务:*/1 * * * * date >> /tmp/mydate,保存退出即执行了。可以用crontab -l查看执行的定时任务
方式一只适合简单的定时任务,复杂的定时任务需要使用方式二
方式二:
- 先编写一个文件 /home/mytask1.sh
date >> /tmp/mydate
- 给mytask1.sh 一个可以执行权限
- 编写定时任务
crontab -e
*/1 * * * * /home/mytask1.sh
- 保存即执行该任务
案例2:每天凌晨 2:00 将mysql 数据库 testdb ,备份到文件中 mydb.bak。
- 编写一个文件/home/mytask2.sh
mysqldump -u root -proot testdb > /tmp/mydb.bak
- 给mytask2.sh一个执行权限
- 编写定时任务
crontab -e
0 2 * * * /home/mytask3.sh
- 保存退出即执行该定时任务(crontab -e里面可以编辑多个定时任务)