1 crond任务调度
crontab 进行定时任务的设置
1.1 概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
示意图
1.2 基本语法
crontab [选项]
1.3 常用选项
1.4 快速入门
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e命令。
接着输入任务到调度文件
如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls -l /etc/ >/tmp/to.txt命令
从下图中也可以看到,/temp文件下也已经有了to.txt文件
通过more命令,查看 to.txt 文件里的内容
我们可以看到,已经成功地将/etc目录下的文件信息都打印到了 to.txt 中
参数细节说明
5个占位符的说明
特殊符号的说明
特殊时间执行案例
1.5 应用实例
案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * * date >>/tmp/mydate
案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal 文件中
步骤:
- vim /home/my.sh 写入内容 date>> /home/mycal 和 cal >> /home/mycal
- 给 my.sh增加执行权限,chmod u+x /home/my.sh
因为通过ll可以看到,my.sh对任何用户都是没有执行权限的,但只有执行该脚本,才能执行里面的内容,也就是将日期和日历打印到my.sh中,所以需要增加执行的权限。
- crontab -e 然后在里面写入*/1 * * * * /home/my.sh
最后看一下结果,很神奇!
案例3:每天凌晨2:00将mysql数据库testdb ,备份到文件中。提示:指令为mysqldump -u root -p密码数据库> /home/db.bak
- crontab -e
- 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
1.6 crond相关指令
conrtab -r:终止任务调度。
crontab -l:列出当前有那些任务调度
service crond restart [重启任务调度]