linux crond任务调度
摘要
- 介绍linux的任务调度机制
- 介绍任务调度指令
crontab
- 举例crontab进行任务调度的例子
一、linux任务调度
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等个别
- 用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
二、crond守护进程
- crond是linux的一个后台服务,其任务就是根据cron的设置定时调度任务
三、crontab指令
crontab指令能够定时调用任务
选项 | 说明 |
---|---|
-e | 编辑、设置crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
指令 | 功能 | 说明 | 选项 |
---|---|---|---|
crontab -e |
编辑crontab定时任务 | ||
crontab -l |
查询crontab任务 | ||
crontab -r |
删除所有的crontab任务 | ||
service crond restart |
重启调度任务 |
1. 设置定时调度任务
然后写入如下内容
意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt
命令
具体的时间占位符的含义,可以参考另一篇博客
退出后即可
一分钟后查看tmp目录,果然有to.txt文件
2. 查看crontab任务
crontab -l
3. 删除crontab任务
crontab -r
四、举例
上面已经举例了:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中,这是一次执行一个指令
如果要一次执行多个指令呢?
1. 例一:一次调度多个指令
- 要求:每隔1分钟,将当前日期和日历都追加到
/home/mycal
文件中 - 一次执行两个指令,可以将指令写在sh文件里面
- 然后crontab每个一分钟执行这个shell文件
- 编写shell
vim /home/mycal
- 写入内容
date >> /home/mycal
cal >> /home/mycal
- 给sh文件添加执行的权限
chmod u+x /home/my.sh
crontab -e
添加调度
*/1 * * * * /home/my.sh
然后就可以看到这个文件了
2. 例二
- 要求每天凌晨2:00将mysql数据库testdb,备份到文件中。
- 提示:指令为
mysqldump -u root -p密码 数据库 > /home/db.bak
- 添加调度任务
crontab -e
- 输入任务
0 2 * * * mysqldump -u root -proot testdb > /home/db.bak