crond任务调度
crond 可以定时调度不管复杂的脚本还是简单的指令,它的作用是可以病毒扫描或者个别用户的数据备份、安全检测
基本语法
crontab [选项]
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
重启任务调度 service crond restart
案例
每分钟调用一次指令:ls -l /etc/ > /tmp/to.txt
指令:
crontab -e
*/1 * * * * ls -l /etc/ > /tmp/to.txt
每分钟都会生成一次,这样删除了,一分钟后又会生成
参数细节说明
特殊符号说明
特定时间执行案例
应用实例
案例一:每隔一分钟,就将当前的日期信息,追加到/tmp/mydate 文件中
crontab -e
*/1 * * * * date >> /tmp/mydate
案例二:每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
cd /home
vim my.sh
date >> /home/mycal
cal >> /home/mycal
chmod u+x my.sh
crontab -e
*/1 * * * * /home/my.sh
案例三:每天凌晨2点,将mysql数据库testdb,备份到文件中。提示:指令为 mysqldump -u root -p密码 数据库 > /home/db.bak
crontab -e
0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
at定时任务
基本介绍
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列job队列来运行
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
- 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
- ps -ef | grep atd // 可以检测atd是否在运行
- 出现以下信息说明atd在运行
at命令格式
at [选项] [时间]
Ctrl + D 介绍at命令的输入
at命令的选项
at时间定义
at指定时间的方法
- 接受在当天的hh:mm (小时:分钟) 式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:04:00
- 使用midnight (深夜) ,noon (中午),teatime ( 饮茶时间,一般是下午4点) 等比较模糊的词语来指定时间
- 采用12小时计时制,即在时间后面加.上AM(上午)或PM (下午)来说明是上午还是下午。 例如: 12pm
- 指定命令执行的具体时期,指定格式为month day (月日) 或mm/dd/yy (月/日/年) 或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
- 使用相对计时法。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes (分钟)、hours (小时)、days (天)、weeks (星期)。count是时间的数量,几天,几小时。例如:now + 5 minutes
- 直接使用today (今天)、 tomorrow ( 明天) 来指定完成命令的时间。
应用案例
案例一:2天后的下午五点执行 /bin/ls /home
at 5pm + 2 days
/bin/ls /home
案例二:atq命令来查看系统中没有执行的工作任务
# 查询当前job队列
atq
案例三:每天17点,输出时间到指定文件/root/date100.log
# 方法一
at 5pm + 1 days
date > /root/date100.log
# 方法二
at 5pm tomorrow
date > /root/date100.log
案例四:2分钟后,输出时间到指定文件/root/date200.tog
# 方法一
at 00:02
date > /root/date200.tog
# 方法二
at now + 2 minutes
date > /root/date200.tog
删除已经设置的任务,atrm编号
# atrm [编号]
atrm 1 2 3 4 5