crond是后台运行的一个程序
作用:定时去调用命令完成工作
crontab:进行定时任务的设置
基本语法:
crontab 选项
常用选项:
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
案例1:每隔一分钟执行以下指令ls -l /etc/ > /tmp/to.txt
快速入门:
设置任务调度:/etc/crontab
设置个人任务调度,执行crontab -e 命令。
接着输入任务到调度文件
*/1 * * * * ls -l /etc/ > /tmp/to.txt
第一个*:一个小时当中的第几分钟 0-59
第二个*:一天中的第几小时 0-23
第三个*:一月中的第几天 1-31
第四个*:一年当中的第几月 1-12
第五个*:一周当中的星期几 0-7(0和7都代表周日)
注意,第一个*和/1不空格,意思是每分钟都执行。其它的地方要空格
特殊符号的说明:
* 代表任何时间,比如第一个*就代表 一小时中每分钟都执行一次的意思
, 代表不连续的时间 0 8,12,16 * * * 代表每天的8点0分,12点0分,16点0分都执行一次命令。
- 代表连续的范围 0 5 * * 1-6 代表周一到周六的凌晨5点0分执行命令
*/n 代表多久执行一次 比如 */10 * * * * 命令代表每隔10分钟执行一次
实战:
案例1:每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * * date >> /tmp/mydate
案例2:每隔一分钟,将当前的日期和日历都追加到/home/mycal文件中
法1)
*/1 * * * * cal >> /home/mycal
*/1 * * * * date >> /home/mycal
法2)写一个脚本,让crond去调用这个脚本就可以
先vim写一个脚本/home/my.sh
cal >> /home/mycal
date >> /home/mycal
再用chmod u+x /home/my.sh 去给用户增加执行权限(如果没有执行权限会失败)
最后输入crontab -e 进入编辑模式,然后输入*/1 * * * * /home/my.sh(这个代表执行)
案例3:每天凌晨2:00将MySQL数据库testdb ,备份到文件/home/db.bak中
crontab -e
0 2 * * * mysqldump -u root -p密码 数据库 > /home/db.bak
重启任务调度service crond restart