linux定时任务

系统定时任务

一、at(执行一次命令)
1.查询是否安装:systemctl status atd (service atd status)
2.启动at服务:systemctl start/restart atd (service atd start/restart)
3.只有/etc/at.deny文件(黑名单),那么在此名单下的用户不能使用at命令,对root无效
4.at [选项] 时间        -m : 执行工作后通知执行at命令的用户       -c + 工作号 :显示该at工作的实际内容
5.atq --查询当前服务器上的at工作   
6.atrm [工作号] --删除指定的at任务
7.at 命令退出: 按ctrl+d 保存退出; 8.例子:
#at now +5 minutes
at>/root/hello.sh
ctrl+d / atq / at -c 1

#at 02:00 2017-06-24
at>/bin/sync  #从磁盘同步到内存中

at>/sbin/shutdown -r now

9.可以是命令也可以是脚本


二、crontab循环定时任务
1.查询是否安装: systemctl status crond
2.启动: systemctl start crond
3.开机自启: systemctl enable crond
4./etc/cron.deny文件(黑名单),那么在此名单下的用户不能使用cron命,对root无效。
5.crontab -e     #进入crontab编辑界面,当前用户vim方式编辑(手工定时任务)
6.crontab -l     #查看当前用户的crontab任务
7.crontab -r     #删除当前用户的所有的定时的任务
* 一小时的第几分钟
* 一天当中的第几小时
* 一月当中第几天
* 一年当中第几个月
* 一周中的第几天
,两个都     */n 每隔n
最小能识别分钟,最大能识别月
6个选项都不为空,不确定的用*代替
日期和星期最好不要在同一条命令中
命令最好(一定)用绝对路径执行

8.例子:
*/10 2 4,5 10 * /root/hello.sh

10月四日和五日凌晨2点,每隔十分钟执行一次


三、系统的crontab设置
1.定义: 不同的用户可以通过 crontab -e 执行自己的定时任务(谁的执行谁来管,有权限设置),但是某些任务需要系统来执行(只有root能做,/etc/crontab)。

2.手工定时任务:
格式: * * * * * command
1、crontab五个星号的意义,其中第三个和四五尽量不要一起使用,如果一起使用则是或的关系
2、crontab后面的命令要用绝对路径(脚本中的命令也尽量要用绝对路径)

3.系统定时任务:
1. 把需要定时的执行的脚本复制到/etc/cron.{daily,weekly,monthly}中的任意一个(推荐)
2. 直接修改 /etc/crontab配置文件 格式:*  *  *  *  * user-name  命令/脚本

4.anacron配置(centos6以上,系统命令,只会执行/etc/cron.{daily,weekly,monthly}下的任务)
定义: 防止机器被意外关机,一旦开机恢复正常会检查关机期间有没有遗漏定时任务,如果遗漏, 就会重新再次执行遗漏部分保证系统关机期间错过的定时任务,在系统开机后再自动执行。

5.anacron检查周期

1.anacron使用一天,七天,一个月作为检测周期
2./var/spool/anacron/cron{daily,weekly,monthly} ( 会相对应记录/etc/cron.{daily,weekly,monthly}下的任务上一次执行时间

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

vi /etc/anacron   #配置文件(老版本在/etc/crond里面)

RANDOM_DELAY=45 #最大随机延迟
START_HOURS_RANGE=3-22 #anacron执行时间范围
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weeky nice run-parts /etc/weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

四、总结:
anacron操作
1.写好sheel脚本
2.查看/etc/anacron配置进行参数配置
3.将脚本存放到/etc/cron.{daily,weekly,monthly}对应目录下

crontab操作
1.写好sheel脚本
2.在/etc/crontab写好执行的命令(什么时候操作哪个脚本,绝对路径)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值