概述
cronttab
进行定时任务的设置. cron
是希腊语时间的意思,tab
是表格的意思,组合起来就是时间表.
任务调度: 是指系统在某个时间执行的特定的命令或程序.
任务调度分类:
(1) 系统工作: 有些重要的工作必须周而复始地执行. 如病毒扫描等
(2) 个别用户工作: 个别用户可能希望执行某些程序,比如对mysql
数据库的备份.
基本语法
crontab [选项]
-e
: 编辑crontab
定时任务
-l
: 查询crontab
任务
-r
: 删除当前用户所有的crontab
任务
快速入门
每分钟输出一个时间在/home/to.txt
crontab -e
* date >> /home/to.txt
参数说明
占位符说明
特殊符号说明
特定时间执行任务案例
(1) 在22点45分执行命令
45 22 * * * 命令
(2) 每周1的17点0分执行命令
0 17 * * 1 命令
(3) 每月1号和15号的凌晨5点0分执行命令
0 5 1,15 * * 命令
(4) 每周一到周五的凌晨4点40分执行命令
40 4 * * 1-5 命令
(5) 每天的凌晨4点,每隔10分钟执行依次命令
*/10 4 * * * 命令
(6) 每月1号和15号,每周1的0点0分都会执行命令
0 0 1,15 * 1 命令
任务调度的几个应用实例
案例1: 每隔1分钟,就将当前的日期信息,追加到/tmp/mydate
文件中
-
向编写一个文件:
/home/mytask1.sh
, 内容为data >> /tmp/mydate
-
给
/home/mytask1.sh
一个可执行权限 ,chmod 755 /home/mytask1.sh
-
crontab -e
-
*/1 * * * * /home/mytask1.sh
案例2: 每隔1分钟,将当前日期和日历都追加到/home/mycal
文件中
#!/bin/bash
# mytask02.sh
date >> /home/mycal
cal >> /home/mycal
案例3: 每天凌晨2:00将mysql
数据库testdb
,备份到文件中mydb.bak
#!/bin/bash
# mytask03.sh
0 2 * * * /usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak