1 crontab 进行-定时任务的设置
1)概述:
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
2)基本语法:
crontab [选项]
//常用选项有:
-e //编辑crontab定时任务
-l //查询crontab任务
-r //删除当前用户所有的crontab任务
重启任务调度指令:
service crond restart
案例:每个小时的每分钟执行ls -l /etc/ > /tmp/to.txt 命令
*/1 * * * * ls -l /etc/ > /tmp/to.txt
3)5个占位符的说明
4)特殊符号说明
案例:
5)使用*.sh脚本执行定时任务
如:每隔2分钟,将当前日期和日历都追加到/home/mycal.txt文件中
第一步:创建my.sh文件脚本,并编辑需要执行的指令
vim my.sh
//编辑指令
date >> /home/mycal.txt
cal >> /home/mycal.txt
//保存退出
第二步:设置my.sh的执行权限给所有者,说明是一个可执行文件
chmod u+x my.sh
第三步:使用crontab 指令增加定时任务
crontab -e
//编辑内容为:
*/2 * * * * /home/my.sh
//保存退出
6)案例
应用实列:
案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
crontab -e
//编辑内容:
*/1 * * * * data >> /tmp/mydata
案例2:每隔2分钟,将当前日期和日历都追加到/home/mycal文件中
//详见:5)使用*.sh脚本执行定时任务
案列3:每天凌晨2:00将mysql数据库testdb,备份到文件中,
提示:指令为mysqldump -u root -p密码 数据库 > /home/bd.bak
第一步:crontab -e
第二步:0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
2 at定时任务
1)基本介绍:
- at命令是一次性定时计划任务,at的守护进程atd会以 后台模式进行运行,检查作业队列来运行默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- at命令是一次性定时任务计划,执行完一个任务后不再执行此任务了,并将任务移除
注意:在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef | grep atd
2)at命令格式
at [选项] [时间]
ctrl + D 结束at命令输入(两次)
at命令选项:
at时间参数:
3)查看系统中的at定时任务-atq
语法:
atq
4)删除设置的at定时任务
语法:
atrm 编号
5)使用*.sh脚本执行at定时任务
如:2分钟后,执行/home/my.sh
at now + 2minutes
接着输入执行的指令
/home/my.sh
按Ctrl+D两次,退出
可以查看创建的at定时任务
atq
6)案例:
案例1:
2天后的下午5点执行/bin/my.sh /home/a.txt
at 5pm + 2days
接着输入执行的指令
/bin/my.sh /home/a.txt
按Ctrl+D两次,退出
可以查看创建的at定时任务
atq
案例2:
明天17点钟,输出时间到指定文件/home/b.txt内
at 5pm tomorrow
接着输入执行的指令
date > /home/b.txt
按Ctrl+D两次,退出
可以查看创建的at定时任务
atq
案例3:
2分钟后,输出时间到指定文件/home/c.txt内
at now + 2minutes
接着输入执行的指令
date > /home/c.txt
按Ctrl+D两次,退出
可以查看创建的at定时任务
atq
案例4:
删除指定的at定时任务
先查看at定时任务得到,对应的编号
atq
//删除对应编号的at定时任务
atrm 编号