[关闭]
@Chiang 2019-09-28T13:03:35.000000Z 字数 1271 阅读 626

计划任务 (crontab)

Linux


仅执行一次的计划任务

at

我们使用at这个命令来产生所要运行的任务,并将这个任务以文本文件的方式写入/var/spool/at/目录内,该任务便能等待atd这个服务的使用与执行了.

atd 服务

  1. # ubuntu 更新
  2. apt update
  3. # ubuntu install atd
  4. apt install at
  5. #

利用/etc/at.allow/etc/at.deny这两个文件来实现对at的使用限制:

  • 先找寻/etc/at.allow这个文件,写在这个文件中的用户才能使用at,没在这个文件中的用户则不能使用at(即使没有写在at.deny当中)
  • 如果/etc/at.allow不存在,就查找/etc/at.deny这个文件,写在这个at.deny中的用户则不能使用at,而没有在这个at.deny文件中的用户,就可以使用at.
  • 如果两个文件都不存在,那么只有root可以使用at这个命令.
  1. at [-mldv] TIME
  2. at -c 任务号码
  3. # 设置任务 ctrl+d 结束
  4. at now + 5 minutes
  5. # 查看任务内容
  6. at -c 2
  7. # 查询at计划任务
  8. atq
  9. # 删除计划任务
  10. atrm (jobnumber)

batch

系统有空时才执行后台任务

  • batch是利用at来执行命令的,只是加入一些控制参数.
  • 它是在CPU的任务负载小于0.8的时候,才执行你的工作任务.

使用uptime可以查看1分钟,5分钟,15分钟的[平均任务负载]量

循环执行的计划任务

利用/etc/cron.allow/etc/cron.deny这两个文件来实现对cron的使用限制和at是类似的

cron

  1. # crontab 语法
  2. crontab [-u username] [-l|-e|-r]
  3. # 编辑
  4. crontab -e
  5. # 编辑页面里:
  6. # at 5 a.m every week with:
  7. # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
  8. # 分时日月周 |<===命令串===>|

六个字段的意义

代表的意义 分钟 小时 日期 月份 命令
数字范围 0~59 0~23 1~31 1~12 0~7 需要执行的命令

特殊字符含义

特殊字符 代表意义
*(星号) 代表任何时候都接受的意思
,(逗号) 代表分割时段的意思
-(减号) 代表一段时间范围内
/n(斜线) 那个n代表数字,亦即是[n单位间隔]的意思

命令所在文件,系统的配置文件

  • 当用户使用crontab这个命令来建立计划任务之后,该项任务就会被记录到/var/spool/cron中,而且是以账号来作为判断根据的.
  • 系统配置文件/etc/crontab
  • /etc/cron.

anacron 可唤醒停机期间的工作任务

  1. # 语法
  2. anacron [-sfn] [job]..
  3. anacron -u [job]..

参考资料:
鸟哥的Linux私房菜
如何在Ubuntu 16.04上安装配置邮件发送服务器
Ubuntu下crontab的安装和使用

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注