2、计划将来的任务
计划延迟的用户作业
- at 软件包
- 加入要让特定任务运行一次,需要用到at程序
- at的守护进程atd,它有一组命令行工具可与守护进程(atd)进行交互
- 例:2分钟后 新建/test目录 并在目录下新建一个1.txt
- at now +2min 进入交互式命令窗口 ,ctrl + D 发送出去 定时完成
- at 配置任务的脚本在/var/spool/at 里
- 在下面就是a0000开头的脚本
- at now +2min 进入交互式命令窗口 ,ctrl + D 发送出去 定时完成
- 检查和管理作业
- 作业的配置文件保存在/var/spool/at目录下。文件包括了环境变量以及计划执行的命令 使用at -c <jobnumber>可以查看
- atq 可以查看目前等待执行的任务
- 作业号|执行时间|默认队列a,可以是a-z|作业所有者
- 可以通过-q c设置队列
- 删除作业
- atrm <jobnumber>
计划周期性的用户作业
- cron简介
- 特别针对周期性作业的crond守护进程,且默认开机启动。
- crond 是由多个配置文件和系统范围内的文件控制的,每个用户对应一个配置文件。
- 配置文件使用户和管理员拥有各自的控制权,可以控制执行周期性作业的确切时间。crond守护进程由cronie软件包提供。
- crontab -l
- crontab -r
- crontab -e
- crontab fiename
- 用户周期性作业的配置文件
- /var/spool/cron/<USER>
- 作业配置文件格式
- 每个作业都包含六个字段,这些字段包括
- 分 时 天 月 周 命令
- 时间书写格式
- *表示 无关紧要/始终
- 数字可用于指定分钟数或小时数、日期或者工作日。(0和7表示周日)
- x,y 表示列表。
- */x 表示x的时间间隔
- x-y 表示范围
- 此外,可以使用Jan等表示月份
- 例:
- 每年1月1日上午9点 执行命令 echo “happy new year”
- 0 9 1 1 * echo “happy new year”
- 例:在七月的每周五,上午9点至下午5点检 每五分钟 执行 echo “hello”
- */5 9-16 * 7 5 echo “hello”
- 注:9-16 表示9点至16点59分,也就是上午9点至下午5点
- 每个工作日上午9点,执行shell脚本test.sh
- 0 9 * * 1-5 test.sh
计划周期性系统作业
- 系统周期性作业
- 系统管理员使用系统范围的crontab文件
- 系统cron作业存储位置/etc/crontab /etc/cron.d/以及/etc/cron.
- 比用户周期性作业多一个用户字段
1
- /etc/crontab 直接在该文件中定义,软件更新可能会被覆盖
- /etc/cron.d/*:自定义crontab文件后放入/etc/cron.d目录(推荐)
2
直接将写好的脚本放在下面的目录中
-
/etc/cron.hourly/* 每小时运行的脚本存储库
-
/etc/cron.weekly/*
-
/etc/cron.daily/*
-
/etc/cron.monthly
/etc/anacrontab定义以上目录的周期执行计划,使用crond服务解析此配置文件 -
配置文件及服务一览
- 用户
- 延迟任务
- 软件包at — > atd 守护进程
- 配置文件 /var/spool/at/<job>
- 周期任务
- 软件包 cronie --> crond守护进程
- 配置文件: /var/spool/cron/<user>
- 延迟任务
- 系统
- 周期任务
- 方法一
- /etc/crontab
- /etc/cron.d/
- 方法二
- /var/spool/anacron
- /etc/anacrontab
- /etc/cron.hourly/ – > /etc/crond/0hourly
- /etc/cron.daily/
- /etc/cron.weekly/
- /etc/cron.monthly/
- /etc/anacrontab
- 用户