周期性任务计划

一次性任务计划

    at,batch

 

周期性任务计划

    crontab,anacron

   

一次性任务计划:

   at 交互式:让用户在at>提示符输入多个要执行命令:

   批处理:让任务的个命令写入文件由at进行调用

 

at命令:

语法:

   at [option] time

    time:

         HH:MM [YYYY-mm-dd]

         noon,midnight,teatime

         tomorrow

         now+#{minutes,hours,days, OR weeks}

 

常用选项:

      -q:  队列

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

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

      -c: 查看具体作业任务

       -f: /path/from/somefile  从指定文件中读取任务

       Ctrl+d 提交作业

 

at任务:

执行方式:    1)交互式 2)输入重定向 3)at –f 文件

依赖与atd服务,需要启动才能实现at任务

at队列存放在/var/spool/at目录中

/etc/at.{allow,deny}控制用户是否能执行at任务    

白名单:/etc/at.allow默认不存在,只有该文件中的用户才能执行at命令    

黑名单:/etc/at.deny默认存在,拒绝该文件中用户执行at命令,而没有在 at.deny 文件中的使用者则可执行    

如果两个文件都不存在,只有 root 可以执行at 命令

 

注:作业的执行结果以邮件方式通知给相关用户

 

batch命令:

    让系统自行选择空闲时间去执行此处指定的任务

 

 周期性任务计划:crond

     crond:守护进程,运行在后台,随时监视着进程等待执行

         服务进程:阻塞,轮训

 

系统cron任务

       /etc/crontab

# *  * *  *  * user-name command to be executed

 分,时,日,月,周

 

用户cron任务

      crontab命令

crontab命令定义,每个用户都有专用的cron任务文件,/var/spool/cron/username

 

日志:/var/log/cron

 

时间表示法:

  1.每个事件为都应该使用其可用的有效取之范围内的值

  2.某事件围上的*表示对应位的有效取值

  3、-:连续的相邻时间点取值

  4、,:离散的时间点取值

  5,/# :表示在指定时间范围内每隔#一次

 

crontab命令:

       -l 列出所有任务

       -e 编辑任务

       -r 移除所有任务

        -i -r一同使用,以交换式模式让用户有选择的移除指定任务

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

注:运行结果以邮件通知给相关用户

       通过输出重定向而拒收邮件:

       &> /dev/null

       > /dev/null2>&1

 

计划任务配置文件:

系统的计划任务: /etc/crontab

/etc/cron.d/  配置文件

/etc/cron.hourly/  脚本

/etc/cron.daily/ 脚本

/etc/cron.weekly/ 脚本

/etc/cron.monthly/ 脚本

 

 

提醒:对于cron任务来讲,%有特殊用途,如果在crontab的用户命令中使用%,得转义为\%

5 3 * * * /bin/touch~/testfile_`date +\%Y-\%m-\%d`.txt

 

在使用单引号后,%也可以不转义

5 3 * * * /bin/touch~/testfile_`date +’%Y-%m-%d‘`.txt

 

练习:

1、每3分钟执行一个“echo “how are you?””

 */3 * * * * /bin/echo “how are you?”

2、每周2、4、6备份/etc/目录至/backup目录中,备份的文件名以当etc_开头并跟上当日的日期作为文件名

0 0 ** 2,4,6 /bin/tar Jcf /back/etc-`date +'%F'`.tar.xz/etc/*

3.每天6,9,12,15,18查看一下系统当前挂载的所有文件系统,并将查看的结果追加至/tmp/mounts.txt文件中

0 6-18/3 * * *  /bin/mount >> /tmp/mounts.txt

4.每天每两小时取当前系统内存空间余量,将其保存至/stats/memory.txt文件中

20 */2* * * /bin/grep "^MemFree:" /proc/meminfo>> /stats/memory.txt

 

如何实现秒级别的任务:

 

* * * * for i in{0..4};do /bin/echo “how are you?”;sleep10;done

 

anacron命令:是crontab的补充,用于检查crontab中某任务在过去的一个周期内是否没有执行,

 如果没有执行,则在开机以后的某时间点让其执行一次,无论其周期是否到达

 

配置文件:/etc/anacrontab,负责执行/etc/cron.daily /etc/cron.weekly /etc/cron.monthly中系统任务。

字段1:如果在这些日子里没有运行这些任务……

字段2:在重新引导后等待这么多分钟后运行它

字段3:任务识别器,在日志文件中标识

字段4:要执行的任务u由/etc/cron.hourly/0anacron执行 u当执行任务时,更新/var/spool/anacron/cron.daily 文件的时间戳

 

管理临时文件:

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 root10d

d /var/tmp 1777 rootroot 30d

命令: systemd-tmpfiles–clean|remove|create  configfile 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值