Linux任务计划

Linux任务计划

at 执行一次的任务计划

  • 确定atd守护进程开启,要使用单一工作调度时,我们的Linux系统上面必须要有负责这个调度的服务—atd

    /etc/init.d/atd restart 开启atd守护进程

  • 我们用at这个命令来生成所要运行的工作,并将这个工作以文本的方式写入/var/spool/at/目录内

  • 管理可以使用at命令的账号
    - 查找是否存在/etc/at.allow这个文件,写在这个文件里的用户可以使用at命令,不在这个文件中的用户不能使用at命令
    - 查找是否存在/etc/at.deny这个文件,写在这个文件里的用户不可以使用at命令,不在这个文件中的用户可以使用at命令
    - 如果以上两个文件都不存在,则只有root用户能使用at命令

  • 小结:/etc/at.allow控制比较严格,/etc/at.deny控制比较松散

  • atq 列出at任务

  • atrm [jobnumber] 删除指定at任务

  • batch CPU的工作负载小于0.8的时候才会执行的工作任务

cron周期性执行的任务计划

  • cron由crond守护进程进行服务控制
  • crond守护进程默认开启

    /etc/init.d/crond restart 重启crond进程

  • 限定可以使用crontab命令的用户
    – /etc/cron.allow 白名单,该文件上的用户允许使用
    – /etc/cron.deny 黑名单,该文件上的用户不允许使用

  • 当用户使用crontab建立任务以后,该任务会被写到/var/spool/cron/user里面去
  • 注意不要直接编辑/var/spool/cron/user文件,避免语法错误造成命令不执行
  • cron执行的每一项任务都会被记录到/var/log/cron这个日志文件中
  • crontab [-u username] [-l|-e|-r]
    -u 只允许root用户使用,为其他用户创建周期任务
    -l 列出要执行的任务
    -e 编辑任务
    -r 清空任务,若要删除某个指定任务则用-e
代表意义 分钟 小时 日期 命令
数字范围 0~59 0~12 1~31 1~12 0~7 就命令啊

0和7都代表星期天


特殊字符 代表意义
*(星号) 代表任何时刻都接受
,(逗号) 代表分隔时段 举例:0 6,9 * * * command 表示要执行工作的时间是6:00和9:00
-(减号) 代表时间段 举例: 20 6-9 * * * command 表示6:00到9:00的20分都执行任务
/n(斜线) n代表数字,即每隔n单位间隔的意思,例如每5分钟执行一次: /5 * * * * command

/etc/crontab 系统的配置文件

这里写图片描述

  • root 表示执行命令的身份
  • run-parts 是系统的里面自带的脚本,功能是将指定目录下的所有文件找出来执行

anacron

  • anacron作为crontab的补充,处理Linux关机期间未执行的crontab任务
  • Linux系统一开机,立即进行anacron的操作,检测停机期间应该进行但是没有进行的crontab任务,将任务执行一遍,然后anacron自动停止