Linux定时任务

一、at一次行定时任务

  • 相关服务
    at是由atd服务调度的,先查看系统上的atd服务
    如没有开启可用service开启。

  • 语法:

at [-cmldv] TIME
-m at工作完成后用email通知用户执行结果
-l 相当于atq,查询当前用户的at工作任务
-v 提示任务将执行的时间
-d 相当于atrm命令,后接工作号,delete工作号的任务
-c 后接工作号,可以列出该工作号的实际内容

TIME格式:


例:



  快捷键ctr+d结束输入。


  • 运行方式
      当我们使用at后,生成的命令会以脚本的形式存在/var/spool/at目录内,当使用at -c 查看具体任务内容,实际也是调用该脚本的内容。
    a开头的文件就是at生成脚本

      我们可以利用/etc/at.allow与/etc/at.deny这两个文件对at进行使用限制,具体情况是这样的:

1.若存在allow文件,则文件内的用户可使用at,其他人不能使用at;
2.若存在deny文件,则文件内的用户不能使用at,其他人可以使用at;
3.若两个文件都存在,则allow生效;若都不存在,那么只用root可以使用at。

at特色是后台执行,是放入系统的后台执行,与当前的终端无关,即使关闭远程终端定时任务也可按时执行。


  • batch命令
      batch是基于at命令的,它会在 CPU负载小于0.8时才进行工作任务,也就是在系统空闲时再进行任务,使用与at相同。

二、crontab循环定时任务

  • 相关服务
    crontab的服务是crond,查看系统上crond服务

  • 权限设置
    与at类似,由/etc/cron.allow及/etc/cron.deny配置文件决定使用权限。

  • 语法

crontab [-elr]
-e 以当前用户,编辑工作内容
-l 查阅工作内容
-r 移除所有工作内容

  • 编辑crontab的格式

***** 命令

每个*号代表的意义



  特殊符号:



  编辑后的任务会存放在/var/spool/cron/*下,*是编写crontab时的用户名。
  • 系统定时任务
      除了使用crontab -e来添加定时任务之外,在/etc/crontab里也可以编辑定时任务,该文件特点是可以指定用户权限来执行定时任务,所以该文件也只能由root才能编写。
  • 配置文件
      在/etc/cron.d下有crontab的配置文件,比如让系统每小时执行一次/etc/cron.hourly/内的可执行脚本文件等。

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

anacron的主要目的是在主机因断电等原因停机导致定时任务没有被执行,在开启主机后会重新执行这些定时任务。
  anacron会每个小时检测一次时间,对比上次执行的定时任务时间是否超过一天、一周、一个月,若超过则在延迟一定时间后执行/etc/cron.daily、/etc/cron.weekly、/etc/monthly中的脚本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 5,778评论 0 4
  • 为当前用户创建cron服务 1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: *...
    jeckHao阅读 5,922评论 0 0
  • 在工作中需要数据库在每天零点自动备份所以需要建立一个定时任务.我选择在Linux下使用Crontab来添加定时任务...
    孙燕超阅读 3,532评论 0 0
  • 开笔 最近在做数据收集涉及到一些日志文件轮转切割,笔者想用一个定时任务来实现定时轮转。调研后决定使用 Linux ...
    加帆阅读 2,795评论 0 0
  • Hello我是奕23~ 昨晚没有睡好,比起清晨的豆浆油条,用一杯香氛的咖啡来唤醒我的困意,也许是最好不过...
    奕23阅读 3,038评论 0 2