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

[经验分享] at、cron周期性任务计划详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-22 08:29:48 | 显示全部楼层 |阅读模式
一、一次性任务计划:atbatch

   1.batch:系统自行选择在系统资源较空闲的时间去执行指定的任务
用法类似于at,但只要提交所需执行的命令
   2.at:指定未来的某时间点执行一次某任务
       (1)用法格式:at   [OPTION]...   TIME
               1)TIME格式:
HH:MM [YYYY-mm-dd]:直接指明具体的时间
noon,midnight, teatime:中午、午夜、下午茶时间(下午四点左右)
tomorrow:明天
now+#:现在之后的多久,可使用表示单位为minutes, hours, days, OR weeks
               2)OPTION常用选项
-l:查看作业队列,相当于atq
-f/PATH/FROM/SOMEFILE:从指定文件中读取作业任务,不用交互式输入;
-d  #:删除指定的作业,相当于atrm;
-c  #:查看指定作业的具体内容;
-qQUEUE:指明队列;
               3)Ctrl+D :提交一次性任务,退出at
       (2)示例:
               1)创建一次性任务,并查看任务列表
                     at的作业有队列,用单个字母表示,默认都使用a队列;
                     一次性任务在执行完成后消失,不再在队列中显示,执行结果邮件发送给MAILTO指定的用户
wKioL1Z3-8OTgE5sAAAlubTkhvg037.jpg
               2)查看单个任务的具体内容
指定任务的队列号,可查看其详细信息,用到的变量,命令,执行时间用户等信息
[iyunv@localhost~]# at -c 7
#!/bin/sh
#atrun uid=0 gid=0
#mail root 0
umask22
HOSTNAME=localhost.localdomain;export HOSTNAME
SHELL=/bin/bash;export SHELL
HISTSIZE=1000;export HISTSIZE
SSH_CLIENT=172.16.250.39\50177\ 22; export SSH_CLIENT
QTDIR=/usr/lib64/qt-3.3;export QTDIR
QTINC=/usr/lib64/qt-3.3/include;export QTINC
SSH_TTY=/dev/pts/0;export SSH_TTY
USER=root;export USER
LS_COLORS=rs=0:di=01\;34:ln=01\;36:mh=00:pi=40\;33:so=01\;35:do=01\;35:bd=40\;33\;01:cd=40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41:su=37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lz=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.bz=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.rar=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*.rm=01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:;export LS_COLORS
MAIL=/var/spool/mail/root;export MAIL
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin;export PATH
PWD=/root;export PWD
LANG=en_US.UTF-8;export LANG
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass;export SSH_ASKPASS
HISTCONTROL=ignoredups;export HISTCONTROL
SHLVL=1;export SHLVL
HOME=/root;export HOME
LOGNAME=root;export LOGNAME
QTLIB=/usr/lib64/qt-3.3/lib;export QTLIB
CVS_RSH=ssh;export CVS_RSH
SSH_CONNECTION=172.16.250.39\50177\ 172.16.249.161\ 22; export SSH_CONNECTION
LESSOPEN=\|\|/usr/bin/lesspipe.sh\%s; export LESSOPEN
G_BROKEN_FILENAMES=1;export G_BROKEN_FILENAMES
cd/root || {
echo 'Execution directory inaccessible'>&2
exit 1
}
${SHELL:-/bin/sh}<< 'marcinDELIMITER0fed9e36'
cat/etc/passed
marcinDELIMITER0fed9e36
               3)删除指定任务(对比)
wKiom1Z3-7ST6W7aAAAPCBfKz_c452.jpg





二、周期性任务计划:cron(crontab、anacron)
   1.服务程序:cronle
cronle (6、7)主程序包,提供crond守护及相关辅助工具
确保crond守护进程(daemon)处于运行状态:
CentOS 7:systemctl  status crond.service
结果Active:active (running) ... …
CentOS6:service  crond  status
...is running.
   2.提交cron方式
           (1)专用配置文件,有固定格式
           (2)不建议使用文本编辑器直接编辑此文件;要使用crontab命令;
   3.cron任务分类:
        (1)系统cron任务:主要用于实现系统自身的维护;
         系统cron的配置格式:/etc/crontabSHELL=/bin/bash
wKiom1Z3-7TT2Y0nAAArkIG8vIE328.jpg
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
#For details see man 4 crontabs
#Example of job definition:
#.---------------- minute (0 - 59)
#|  .------------- hour (0 - 23)
#|  | .---------- day of month (1 - 31)
#|  | |  .------- month (1 - 12) ORjan,feb,mar,apr ...
#|  | |  |  .---- day of week (0 - 6) (Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat
#|  | |  |  |
#*  * *  *  * user-name command to be executed
注释:
     1)每一行定义一个周期性任务,共7个字段;
  *  * *  *  * : 定义周期性时间,分时日月周
  user-name: 运行任务的用户身份
  commandto be executed:任务
     2)环境变量不同于用户登录后获得的环境,建议命令使用绝对路径,或者自定义PATH环境变量;
     3)执行结果邮件发送给MAILTO指定的用户
        (2)用户cron任务:crontab命令
        用户cron的配置格式:/var/spool/cron/USERNAME
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
#For details see man 4 crontabs
#Example of job definition:
#.---------------- minute (0 - 59)
#|  .------------- hour (0 - 23)
#|  | .---------- day of month (1 - 31)
#|  | |  .------- month (1 - 12) ORjan,feb,mar,apr ...
#|  | |  |  .---- day of week (0 - 6) (Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat
#|  | |  |  |
#*  * *  *  *  command to be executed        
注释:
               1)每行定义一个cron任务,共6个字段;
              2)环境变量不同于用户登录后获得的环境,建议命令使用绝对路径,或者自定义PATH环境变量;
              3)邮件发送给当前用户;
   4.*  * *  *  *时间表示法
      (1)表示方法:特定值  * ,   -  /
               1)特定值:给定时间点有效取值范围内的值;
          注意:day of week 和 day of month一般不同时使用;
               2)*:  给定时间点上有效取值范围内的所有值;表“每..”
               3) #,#,#:离散取值,  , 在时间点上使用逗号分隔的多个值;        
               4)#-#:连续取值:-, 在时间点上使用-连接开头和结束      
               5)/#:在指定时间点上,定义步长:/#:#即步长;
         注释:
               1)指定的时间点不能被步长整除时,其意义将不复存在;
               2)最小时间单位为“分钟”,想完成“秒”级任务,得需要额外借助于其它机制;
               3)定义成每分钟任务:而在利用脚本实现在每分钟之内,循环执行多次;
      (2)示例
3* * * *:每小时执行一次;每小时的第3分钟;
34 * * 5:每周执行一次;每周5的4点3分;
56 7 * *:每月执行一次;每月的7号的6点5分;
78 9 10 *:每年执行一次;每年的10月9号8点7分;
98 * * 3,7:每周三和周日;
08,20 * * 3,7:
09-18 * * 1-5:
*/5 * * * *:每5分钟执行一次某任务;
   5.crontab命令:
  crontab [-u user] [-l | -r | -e] [-i]
-e:编辑任务;
-l:列出所有任务;
-r:移除所有任务;即删除/var/spool/cron/USERNAME文件;
-i:在使用-r选项移除所有任务时提示用户确认;
-uuser:root用户可为指定用户管理cron任务;                                       
         注释:
(1)运行结果以邮件通知给当前用户;拒绝接收邮件
COMMAND > /dev/null   将正确结果导入到数据黑洞,只报告错误结果
COMMAND &> /dev/null   将所有结果都导入数据黑洞
(2)定义COMMAND时,如果命令需要用到%要对其转意;但放置于单引号中的%转意
   6.如果期望某时间因故未能按时执行,下次开机后无论是否到了相应时间点都要执行一次,可使用anacron实现;


运维网声明 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-154522-1-1.html 上篇帖子: gzip、bzip2、xz、tar、zip压缩、归档详解 下篇帖子: 安装cassandra 2.2.4 周期性 计划
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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