基本语法
# 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 编号