at一次性定时任务

查看at服务是否安装:chkconfig --list | grep atd
确认at是否运行: service atd status
at服务的启动
service atd restart
---
at的访问控制
- 如果系统中有/atc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)的用户可以使用at命令(/etc/at.deny文件会被忽略)
- 如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令。对root部起作用
- 如果系统中这两个文件都不存在,那么只有root用户可以使用at命令

at命令

*at[选项]时间
*选项:
* -m:当at工作完成,无论是否命令有输出,都用email通知执行行at命令的用户
* -c工作号:显示该at工作的实际内容
时间:
* HH:MM                        例如:02:30
* HH:MM YYYY-MM-DD             例如:02:30 2018-06-05
* HH:MM[am|pm][month][date]    例如:02:30 July 25
* HH:MM[am|pm] + [minutes| hours | days | weeks]
        例如:now + 5 minutes
举例:
at now +2 minutes
#在两分钟之后执行hello.sh 脚本
at > /root/hello.sh >> /root/hello.log

举例:
at now +2 minutes
#在两分钟之后执行hello.sh 脚本
atq 查询已经有的定时任务
cat hello.log  查看文件内容是否有变动
atrm[工作号] 
删除指定的at任务

at 02:00 2018-08-05
指定的时间重启
at> /bin/sync
at> /sbin/shutdown -r now

crontab循环定时任务

查询是否启动
chkconfig --list | grep cron
再次确定是否运行
service crond statys

service crond restart

chkconfig crond on

访问控制

- 当系统中有/etc/cron.allow文件时,只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令。同样如果有此文件,/etc/cron.deny 文件会被忽略,/etc/cron.allow文件的优先级更高
- 当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab 命令

用户的crontab设置

- crontab [选项]
- 选项:
- -e : 编辑crontab 定时任务
- -l : 查询crontab 任务
- -r : 删除当前用户所有的crontab 任务

微信截图_20180605171522.png

微信截图_20180607144406.png

微信截图_20180607150241.png

举例

- */5 * * * * /bin/echo "11" >> /tmp/test
- 5 5 * * 2 /sbin/shutdown -r now
- 0 5 1,10,15 * * /root/sh/autobak.sh

系统的crontab设置

系统的定时任务
“crontab -e”是每个用户执行的命令,也就是说不同的用户身份可以执行自己的定时任务。可是有些定时任务需要系统执行,这时我们就需要编辑/etc/crontab 这个配置文件了

执行系统定时任务的方法
手工执行定时任务
系统定时任务

-第一种是把需要定时执行的脚本复制到
/etc/cron.{dayly,weekly,monthly}目录中的任意一个    --推荐这方法比较靠谱
-第二种是修改/etc/crontab配置文件

anacron配置

anacron是什么

anacron是用来保证在系统关机的时候错过的定时任务,可以在系统开机之后再执行

anacron检测周期

anacron 会使用一天,七天,一个月作为检测周期
在系统的/var/spool/anacron/ 目录中存在cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间
和当前时间做比较,若果两个时间的差值超过了anacron的指定时间差值,证明有cron任务被楼执行

CentOS 6.x的区别

在老的CentOS版本中,/etc/cron.{daily,weekly,monthly}这些目录即会被cron调用,也会被anacron调用,容易重复执行
在CentOS 6.X中则只会被anacron调用,避免了重复执行
在CentOS 6.X中,anacron不再是服务,而是系统命令

anacron配置文件
vi/etc/anacrontab

 -RANDOM_DELAY=45
#最大随机延迟
-START_HOURS_RANGE=3-22
#anacron的执行时间范围是3:00-22:00
- 1  5 cron.daily  nice run-parts /etc/cron.daily
- 7  25 cron.weekly nice run-parts /etc/cron.weekly
- @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
#天数  强制延迟(分) 工作名称   实际执行的命令

cron.daily工作来说明执行过程

首先读取/var/spool/anacron/cron.daily 中的上一次anacron执行的时间
和当期时间比较,如果两个时间的差值超过1天,就执行cron.daily 工作
执行这个工作只能在03:00-22:00 之间
执行工作时强制延迟时间为5分钟,再随机延迟0-45分钟时间
使用nice 命令指定默认优先级,使用run-parts脚本执行 /etc/cron.daily 目录中的所有可执行文件

标签: none

评论已关闭