Linux基础——定时任务

定时任务是什么?

定时任务指在指定时间进行的工作流程

at

命令 at 用于处理仅执行一次的任务(要有atd服务支持,指令记录到/var/spool/at/),-m用邮件通知工作已完成,-l (atq)列出当前系统上面该用户的at任务,-d (atrm)取消任务,-c [job]列出该项任务的实际指令内容

使用如下命令重启atd并设置为开机自启
在这里插入图片描述

  • 如果存在 /etc/at.allow,则只有定义在其中的用户才可以使用at
  • 若不存在 /etc/at.allow,则查找 /etc/at.deny,未定义在其中的用户才可以使用at
  • 若都不存在,则只有root才能使用at

如下规定在8分钟后执行exit命令(Ctrl+d推出at命令行)
在这里插入图片描述

  • 执行at命令最好使用绝对路径,否则会以当前目录为准
  • 所有终端输出都会以邮件形式发送到执行者mailbox

batch

命令 batch 使用 at 进行指令的下达,不过只有在CPU工作负载小于0.8的时候才会运行任务

crontab

命令 crontab 用于处理循环的任务(要有crond服务支持,指令记录到/var/spool/cron/user/,执行的工作记录到/var/log/cron),-u 只有root才能进行的任务,-e 编辑任务,-l 查阅任务,-r 移除所有任务

  • 如果存在 /etc/cron.allow,则只有定义在其中的用户才可以使用crontab
  • 若不存在 /etc/cron.allow,则查找 /etc/cron.deny,未定义在其中的用户才可以使用crontab

输入 crontab -e 进入vi编辑界面,格式为 分 时 日 月 周 指令

符号意义
*表示任意时间
,表示多个时间,0 8,12 * * * command表示8点和12点执行命令
-表示时间范围,0 8-12 * * * command表示8-12点之间的每小时0分执行命令
/表示时间间隔,*/5 * * * * command表示每隔5分钟一次

如下设置每天12点将1.txt的内容以邮件的形式发送给用户song

在这里插入图片描述

/etc/crontab

crontab命令用于编辑用户的任务,而系统的任务定义在 /etc/crontab,cron服务每分钟都会读取系统任务(/etc/crontab)和 用户任务(/var/spool/cron/user/)
里插入图片描述

/etc/cron.d

/etc/crontab 用于放置系统任务,第三方应用的任务则放在 /etc/cron.d 下

anacron

corntab 的任务超过时间(如电脑关机)就会失效,而命令 anacron 可唤醒未被系统运行的crontab任务

-s 开始一连续的执行各项工作,会依据timestamps判断是否进行,-u 强制执行,-n 立刻执行未进行的任务,-u 更新timestamps但不进行任务

/etc/anacrontab

文件 /etc/anacrontab 记录任务,格式为 天数 延迟时间(min) 工作名 实际指令,由 /etc/cron.hourly/0anacron每小时调用一次,执行anacron并读取/etc/anacrontab

在这里插入图片描述

/var/spool/anacron/*

文件 /var/spool/anacron 记录时间戳

在这里插入图片描述

执行步骤

  • 由 /etc/anacrontab 分析 cron.daily 的任务天数为1天
  • 由 /var/spool/anacron/cron.daily 取出最近一次执行anacron的时间戳
  • 将上面的时间戳与当前时间比较,若大于1天,则准备(在延迟时间后)执行任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值