16单元 —— 计划任务 (crontab)

Linux 计划任务的种类: at 、 cron

  • at :突发性的,可以处理仅只执行一次就结束的命令
  • crontab:例行性的,这个命令所设置的任务将会循环的一直执行下去,可循环的时间分为分钟、小时、每周、每月或每年等

仅执行一次的计划任务 —— at

atd 的启动

  • systemctl restart atd           # 重启 atd 服务 (执行at 命令,必须要有 atd 服务支持)
  • systemctl enable atd          # 开启启动 atd 服务

at 的运行方式 

  • /etc/at.allow  文件,写在这个文件中的用户才能使用 at ,没有在这个文件中的用户则不能使用 at (即使没有写在 at.deny 当中)
  • 如果 /etc/at.allow  文件不存在,就查找 /etc/at.deny 文件,写在这个文件中的用户则不能使用 at
  • 如果两个文件都不存在,那么只有 root 用户可以使用 at 命令

16单元 —— 计划任务 (crontab) 

at 命令

at [-mldv] TIME

  • -m , 当 at的任务执行完毕,即使没有输出信息,也发email 通知使用者任务已完成
  • -l, 相当于 atq ,列出目前系统所有使用者的 at 计划
  • -d, 相当于 atrm ,可以取消一个在 at 的计划任务
  • -v, 使用较明显的时间格式列出 at 计划任务列表

at -c 任务码 ,列出任务码代表的计划任务实际命令内容

at -r 任务码 ,删除任

at [now+...] ,指定延迟时间执行任务

16单元 —— 计划任务 (crontab)

循环执行的计划任务  —— crontab

crontab 的用户账号控制管理

  • /etc/cron.allow , 可以使用 crontab 的账户   (cron.allow 更优先)
  • /etc/cron.deny ,不可以使用 crontab 的账户

crontab 的用户任务记录

  • /var/spool/cron/用户/

 crontab 命令

crontab [ -u  username ]  [ -l | -e | -r ]

  • -u, 只有 root 用户才可以执行这个任务
  • -e, 编辑 crontab 任务内容
  • -l, 查看 crontab 任务内容
  • -r , 删除所有的 crontab 任务内容

例:

  • crontab -e          # 以当前用户身份 root  编辑 crontab任务

        0                 12                  *                   *                   *             root  rm -fr  /root/Desktop/*         # 每天 12:00 清空桌面

分(0~59)  时(0~23)   日(1~31)  月(1~12)  周 (0~7)     <======命令串======>

系统的配置文件:/etc/cron.d/*

16单元 —— 计划任务 (crontab)

系统中临时文件管理方式

  • /usr/lib/tmfiles.d/            # 系统临时文件 存储目录

16单元 —— 计划任务 (crontab)