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

[经验分享] Centos进程作业管理与计划任务(二)

[复制链接]

尚未签到

发表于 2018-4-20 08:42:29 | 显示全部楼层 |阅读模式
  作业管理
  前台作业:通过终端启动,且启动后一直占据终端;
  后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)
  让作业运行于后台
  (1) 运行中的作业: Ctrl+z
  (2) 尚未启动的作业: 命令 &
   后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,剥离与终端的关系
  nohup 命令 &> /dev/null &
  screen;COMMAND
  查看当前终端所有作业
  #jobs
  作业控制:
  fg [[%]JOB_NUM]:把指定的后台作业调回前台
  bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行
  kill [%JOB_NUM]: 终止指定的作业
  并行运行
  同时运行多个进程,提高效率
   方法1
  编写一个脚本,把3个脚本放到后台执行
  f1.sh&
  f2.sh&
  f3.sh&
   方法2
  (f1.sh&);(f2.sh&);(f3.sh&)
   方法3
  { f1.sh& f2.sh& f3.sh& }
  任务计划
  

  at
  功能描述:
  指定时间内执行一次指令
  格式:
  at [-V] [-q queue] [-f file] [-mMlbv] TIME
  at [-V] [-q queue] [-f file] [-mMlbv] -t time_arg
  at -c job [job...]
  at [ -rd ] job [job...]
  默认:

  版本
  选项
  说明
  示例

  -m
  当任务被完成之后,将给用户发送邮件,
  即使没有标准输出


  -M
  当任务被完成之后,不发送邮件


  -f
  从指定的文件中读取任务


  -l
  列出指定队列中等待运行的作业;
  相当于atq


  -d
  删除指定的作业;相当于atrm


  -r
  删除指定的作业;相当于atrm


  -c
  查看具体作业任务


  -t


  计划任务执行后,会在/var/spool/at生成以a开头的绿色的文件,默认会将标准输出以邮件形式发送到用户。
  /var/spool/at/spool
  时间格式:
  HH:MM 02:00
  在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务
  HH:MM YYYY-MM-DD 02:00 2016-09-20
  规定在某年某月的某一天的特殊时刻进行该项任务
  HH:MM[am|pm] [Month] [Date]
  04pm March 17
  17:20 tomorrow
  HH:MM[am|pm] + number [minutes|hours|days|weeks]
  在某个时间点再加几个时间后才进行该项任务
  now + 5 minutes
  02pm + 3 days
  当计划的日期过期之后,将不会再执行此条计划任务。
  

   at的黑白名单  
  白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令
  黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny 文件中的使用者则可执行
  如果两个文件都存在,则白名单优先级高于黑名单
  如果两个文件都不存在,只有 root 可以执行 at 命令
  batch   系统自行选择空闲时间去执行此处指定的任务,默认负载0.8。用法与at差不多。
  系统级别运行计划任务
  

  系统cron任务设置:
  配置存放在/etc/crontab
  具体任务存放在:
  /etc/cron.daily/ 日
  /etc/cron.hourly/时
  /etc/cron.monthly/月
  /etc/cron.weekly/ 周
  日志存放路径:/var/log/cron
  任务日期比较基准值:文件内存放着时间值
  /var/spool/anacron/cron.daily
  /var/spool/anacron/cron.monthly
  /var/spool/anacron/cron.weekly
  这些文件内容由以下文件定义,定义了开机后运行任务的时间范围
  /etc/anacrontab
  # /etc/anacrontab: configuration file for anacron
  # See anacron(8) and anacrontab(5) for details.
  # the maximal random delay added to the base delay of the jobs
  RANDOM_DELAY=45 随机延时时间分钟数
  # the jobs will be started during the following hours only
  START_HOURS_RANGE=3-22
  #period in days   delay in minutes   job-identifier   command
  1(运行周期)5(运行时间加上随机延时)cron.dailynice run-parts /etc/cron.daily
  7(运行周期)25(运行周期)cron.weeklynice run-parts /etc/cron.weekly
  @monthly(运行周期) 45(运行周期)cron.monthlynice run-parts /etc/cron.monthly
  run-parts 指的是执行某个目录下的所有脚本
  

  crontab格式:
DSC0000.jpg

  从左到右一共5个*的栏位,2个其他栏位
  1*
  2*
  3*
  4*
  5*
  6
  7
  minute
  hour
  day
  month
  weekday
  username
  command
  
  
  
  
  星期
  执行用户
  执行指令
  1*值为:0-59
  2*值为:0-23
  3*值为:1-31
  4*值为:1-12
  5*值为:0-6(星期日=0时,是0-7)或 sun,mon,tue,wed,thu,fri,sat
  6值为:系统内的用户名,一般为root
  7值为:要执行的程序路径,设置为绝对路径
  

  时间表示法:
  (1) 特定值
  给定时间点有效取值范围内的值
  (2) *
  给定时间点上有效取值范围内的所有值,表示“每...”
  如:*/5 * * * * hunk wall class is over
  

  (3) 离散取值
  #,#,#
  如:0 12,18 * * 1,3,5 hunk wall class is over
  

  (4) 连续取值
  #-#
  如:0 12-18 * * * hunk wall class is over
  

  (5) 在指定时间范围上,定义步长
  /#:
  如:1-59/10 12-18 * * * hunk wall class is over
   1-59内每隔10分钟
  

  (6) 一些其他时间格式表示法:
  格式
  等价于
  @reboot
  系统重启后执行一次
  @yearly
  0 0 1 1 *
  @annually
  0 0 1 1 *
  @monthly
  0 0 1 * *
  @weekly
  0 0 * * 0
  @daily
  0 0 * * *
  @hourly
  0 * * * *
  

  日期与星期冲突的时候,实际的结果就是 的关系
  

  管理临时文件
   CentOS6使用/etc/cron.daily/tmpwatch定时清除临时文件
   CentOS7使用systemd-tmpfiles-setup服务实现
   配置文件:
   /etc/tmpfiles.d/*.conf
   /run/tmpfiles.d/*.conf
   /usr/lib/tmpfiles/*.conf
   /usr/lib/tmpfiles.d/tmp.conf
   d /tmp 1777 root root 10d
   d /var/tmp 1777 root root 30d
  命令:
   systemd-tmpfiles –clean|remove|create configfile
  

  普通用户级别运行计划任务
  

  用户cron任务设置:使用crontab命令
  crontab命令定义,每个用户都有专用的cron任务文件:
  /var/spool/cron/USERNAME
  crontab
  功能描述:
  单用户维护计划任务
  格式:
  crontab [-u user] [-l | -r | -e] [-i]
  默认:

  默认会以vi打开编辑文件
  版本
  选项
  说明
  示例

  -l
  列出所有任务
  #crontab -u hunk -l

  -e
  编辑任务


  -r
  移除所有任务


  -i
  同-r一同使用,以交互式模式移除指定任务


  -u user
  仅root可运行,指定用户管理cron任务

  与系统级的仅仅是差异是没有了运行用户这一栏
  #cat /var/spool/cron/hunk
  */1 * * * * touch /tmp/`mktemp file-XXXX`
  

   crond的黑白名单  
  白名单:/etc/cron.allow 默认不存在,只有该文件中的用户才能执行at命令
  黑名单:/etc/cron.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny 文件中的使用者则可执行
  如果两个文件都存在,则白名单优先级高于黑名单
  如果两个文件都不存在,只有 root 可以执行
  

  其他特别注意:
  放在计划任务的内容,建议写成sh脚本
  运行计算机关机时cron不运行的任务,CentOS6以后版本取消anacron服务,由crond服务管理
  对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义,将%放置于单引号中,则可不用转义
  30 9 * * * root /usr/bin/tar -zcf /app/sysconfig`date +\%F -d "-1 day"`.tar.gz /etc/sysconfig/ &> /dev/null
  

  Centos 6 与 Centos 7命令位置不一样,考虑到脚本通用性。
  37 9 * * * root `which tar` -zcf /app/sysconfig`date +\%F -d "-1 day"`.tar.gz /etc/sysconfig/ &> /dev/null
  如果计划任务文件/etc/crondtab被误删除,可以查看日志尽量恢复。建议经常备份。
  

  相关的程序包:
  cronie: 主程序包,提供crond守护进程及相关辅助工具
  cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常
  运行,则anacron会随后启动一次此任务
  crontabs:包含CentOS提供系统维护任务
  

  一些实例
  每天6:00执行
  0 6 * * * root demo.sh
  

  每周六凌晨4:00执行
  0 4 * * 6 root demo.sh
  

  每周六凌晨4:05执行
  5 4 * * 6 root demo.sh
  

  每周一到周五的10:28开始,每隔10分钟执行一次
  28-59/10 10 * * 1-5 root demo.sh
  

  在每天的10:31开始,每隔2小时重复一次
  31 10-23/2 * * * root   demo.sh

运维网声明 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-449398-1-1.html 上篇帖子: Centos进程作业管理与计划任务(一) 下篇帖子: centos7最小化安装需要安装软件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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