设为首页 收藏本站
查看: 846|回复: 0

[经验分享] linux/centos定时任务at指令详解

[复制链接]

尚未签到

发表于 2018-4-27 09:44:22 | 显示全部楼层 |阅读模式
  指令:at
  定时任务,指定一个时间执行一个任务,只能执行一次。
  语法:# at [参数] [时间]
  at> 执行的指令
  退出at命令 ctrl+d
  命令前提:
  需要开启atd进程(在redhat中atd是默认随系统启动而启动)
  测试中发现在centos6.5 mini版中没有自带at服务,因此需要自己通过下载
  # yum -y install at
  # ps -ef | grep atd ##查看是否开启atd
  # /etc/init.d/atd start ##开启atd
  # chkconfig --level 2345 atd on ##设置atd开机启动
  查询删除当前待执行任务
  查询当前的等待任务,被执行之后就不会显示
  # atq
  删除系统中由at建立的正在等待被执行的任务
  # atrm 任务的工作号
  例如:# atrm 17
  常见参数:
  -m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
  -I :atq的别名
  -d :atrm的别名
  -v :显示任务将被执行的时间
  -c :打印任务的内容到标准输出
  -V :显示版本信息
  -q :后面加<列队> 使用指定的列队
  -f :后面加<文件> 从指定文件读入任务而不是从标准输入读入
  -t :后面<时间参数> 以时间参数的形式提交要运行的任务
  时间:定义出什么时候要进行at的任务,格式有:
  1、HH:MM
  说明:在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
  ex> 04:00
  2、HH:MM YYYY-MM-DD
  说明:规定在某年某月的某一天的特殊时刻进行该项任务
  ex> 04:00 2009-03-17
  3、HH:MM[am|pm] [Month] [Date]
  说明:规定在某年某月某日的某时刻进行该项任务
  ex> 04pm March 17
  4、HH:MM[am|pm] + number [minutes|hours|days|weeks]
  说明:规定在某个时间点再加多少时间后才进行该项任务
  ex> now + 5 minutes
  ex> 04pm + 3 days
  时间格式扩展:
  at允许使用一套相当复杂的指定时间的方法。
  1、能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。
  2、能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
  3、能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。
  4、能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。
  5、能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。
  6、能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
  限制用户的使用权限
  前提:很多主机被所谓的攻击破解后,最常发现的就是他们的系统当中多了很多的黑客程序,这些程序非常可能运用一些计划任务来运行或搜集你的系统运行信息,并定时的发送给黑客。所以,除非是你认可的帐号,否则先不要让他们使用 at 命令
  at命令使用的控制文件来限制用户的使用控制
  控制文件目录:/etc/at.allow和/etc/at.deny
  控制文件使用规则:
  1:先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
  2:如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者就可以使用 at 命令。
  3:如果两个文件都不存在,那么只有 root 可以使用 at 这个命令。
  4:在一般的 distributions 当中,由于假设系统上的所有用户都是可信任的, 因此系统通常会保留一个空的 /etc/at.deny 文件,意思是允许所有人使用 at 命令的意思。
  5:如果不希望有某些使用者使用 at 的话,将那个使用者的帐号写入 /etc/at.deny 即可! 一个帐号写一行。
  # vi /etc/at.allow
  注意事项
  1、如果at的指令输出的路径有误 则会把结果以邮件的形式发送给用户
  2、当一个任务创建了会被分配到一个任务号,而且会在/var/spool/at里面排队。不建议使用vi编辑器去修改,容易出错。
  例子:
  实例1:三天后的下午 5 点锺执行 /bin/ls
  # at 5pm + 3 days
  at> /bin/ls
  at> <EOT>
  job 7 at 2013-01-08 17:00
  实例2:明天17点钟,输出时间到指定文件内
  # at 17:20 tomorrow
  at> date > /root/doiido.log
  at> <EOT>
  job 8 at 2013-01-06 17:20
  实例3:计划任务设定后,在没有执行之前用atq命令来查看系统没有执行工作任务
  # atq
  8 2013-01-06 17:20 a root
  7 2013-01-08 17:00 a root
  实例4:删除已经设置的任务
  # atq
  8 2013-01-06 17:20 a root
  7 2013-01-08 17:00 a root
  # atrm 7
  # atq
  8 2013-01-06 17:20 a root
  实例5:显示已经设置的任务内容
  # at -c 8
  #!/bin/sh
  # atrun uid=0 gid=0
  # mail root 0
  echo "hello"
  date > doiido.log
  扩展指令batch
  batch为,at命令的特殊版本,在执行的任务会占用大量资源的时候用,只在cpu需求低于cpu能力80%的时候使用
  # batch
  at> echo "hi" > /dev/tty2
  batch创建的任务也是通过atq查看,atrm删除

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452571-1-1.html 上篇帖子: CentOS安装步骤 下篇帖子: CentOS6.5安装KVM(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表