任务调度(crond,at)[linux]

基本语法

# crontab [选项]
# -e 编辑crontab定时任务
# -l 查询crontab定时任务
# -r 删除crontab定时任务

# 设置任务调度文件 /etc/crontab
# 设置个人任务调度:执行crontab -e命令
# 输入任务到调度文件
# 每小时每分钟执行ls -l /etc/ > /tmp/to.txt
*/1 * * * * ls -l /etc/ > /tmp/to.txt

占位符说明

项目含义范围
第一个”\*”一小时当中的第几分钟0-59
第二个”\*”一天当中的第几个小时0-23
第三个”\*”一个月当中的第几天1-31
第四个”\*”一年当中的第几个月1-12
第五个”\*”一周当中的星期几0-7(0和7都代表星期日)

特殊符号说明

特殊符号含义
\*代表任何时间,每次都执行,比如第一个”\*”就代表一小时中每一分钟都执行一次的意思
,代表不连续的时间,比如”0 8,12,16 \* \* \*命令”,代表每天8点0分,12点0分,16点0分执行一次
代表连续的时间范围,比如”0 5 \* \* 1-6命令”,代表周一到周六凌晨5点0分执行命令
/n代表每隔多久执行一次,比如”/10 \* \* \* \*命令”,代表每隔10分钟执行一次命令

特定时间执行任务案例

时间含义
45 22 \* \* \* 命令在22点45分执行命令
0 17 \* \* 1 命令在每周一17点0分执行命令
0 5 1,15 \* \* 命令在每月的1号和15号5点0分执行命令
40 4 \* \* 1-5 命令在每周一到周五凌晨4点40分执行命令
/10 4 \* \* \* 命令在每天凌晨4点每隔10分钟执行命令
0 0 1,15 \* 1 命令在每周一,每月1号和15号凌晨0点0分执行命令

at基本介绍

# at是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
# 默认每隔60秒检查作业队列,有作业时检查作业运行时间,若与当前时间匹配,运行此作业
# at是一次性定时计划任务,执行完一个任务后不再执行此任务
# 使用at命令时保证atd进程的启动,可使用相关命令查看
ps -ef|grep atd # 查看atd进程是否启动

at命令格式

# 命令,按ctrl + D 结束命令输入
at [选项][时间]

at应用实例

# 两天后的下午5点执行 /bin/ls /home
at 5pm + 2days # at> 输入 /bin/ls /home # 按ctrl + D(输入两次)
# atq命令查看系统中没有执行的工作任务
atq
# 明天17点,输出时间到指定文件内,比如/root/date100.log
at 5pm tomorrow # at> 输入 date > /root/date100.log # 按ctrl + D(输入两次)
# 2分钟后,输出时间到指定文件内,比如/root/date200.log
at now + 2minutes # at> 输入 date > /root/date100.log # 按ctrl + D(输入两次)
# 删除已经设置的任务
atrm 编号
上一篇
下一篇