基本说明
任务调度:是指系统在某个时间执行的特定的命令或者程序。
任务调度分类
- 系统工作,有些重要的工作必须周而复始的执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
事先自己写好了一个脚本程序,完成某个任务,比如备份mysql数据库,Linux系统提供一种机制可以定时的调度我们的脚本或者代码,定时调用这个脚本,假如希望后半夜两点备份musql数据库,就可以利用这种机制,这种机制叫做crontab。
如果是简单的任务可以不需要写脚本,直接在crontab中加入任务即可,对于比较复杂的任务需要写脚本(shell编程)。
基本语法
crontab [选项]
常用选项
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户的所有crontab任务
crond相关指令
crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart [重启任务调度]
快速入门案例
要求
- 设置任务调度文件:/etc/crontab
- 设置个人任务调度,执行[crontab -e]命令
- 接着输入任务到调度文件中,如:/1 *ls -l /etc/ > /tmp/to.txt,意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令
详细步骤
- 输入 [crontab -e],进入到 cd /tmp中,然后输入[/1 *ls -l /etc/ > /tmp/to.txt],按 esc键后输入指令[:wq]保存并退出。
- 使用指令 [ls -l]指令查看ok.txt文件
参数细节说明
5个占位符的说明
特殊符号的说明
特定时间执行任务案例
应用案例
案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中,
- 先编写一个文件,/home/ crazyyang/mytask1.sh(shell脚本)
date >> /tmp/mydate.txt - 给mytask1.sh一个可执行权限
chmod 744 mytask1.sh - 输入crontab -e指令
- 输入/1 * /home/crazyyang/mytask1.sh
案例2:每隔1分钟,就将当前日期和日历追加到/home/mycal文件中
- 先编写一个文件,/home/ crazyyang/mytask2.sh(shell脚本)
cal >> /tmp/mycal.txt
date >>/tmp/mycal.txt - 给mytask2.sh一个可执行权限
chmod 744 mytask1.sh - 输入crontab -e指令
- 输入/1 * /home/crazyyang/mytask2.sh
案例3:每天的凌晨2:00将mysql数据库testdb,备份到文件mydb.bak中
- 先编写一个文件,/home/ crazyyang/mytask3.sh(shell脚本)
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak - 给mytask3.sh一个可执行权限
chmod 744 mytask1.sh - 输入crontab -e指令
- 输入/1 * /home/crazyyang/mytask3.sh