【命令】定时任务管理

学会Linux下定时任务管理,可以方便我们做一些周期性的任务,诸如:清理/tmp目录下文件、数据库备份、日志分析等。Linux下定时任务管理,主要涉及crontab命令的使用。

crontab简介

crontab命令常见于UNIX和类UNIX操作系统,用于设置被周期性执行的指令。该命令从输入设备读取指令,并将其存放在crontab文件中,以供后续读取和执行。一般情况下,crontab存储的指令被守护进程激活,crond为其守护进程,crond常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。
我们可以通过crontab设置在固定的间隔时间执行指定的系统指令或者Shell、Script脚本。时间间隔可以是分钟、小时、日、月、周的任意组合。

cron启动

本人比较了centos和ubuntu的环境准备区别,centos下安装并启动crond组件即可;ubuntu下主要涉及如下组件:

  • rsysylog组件(syslog组件,方便查看任务是否被执行):

sudo service rsyslog start

查看rsyslog状态
  • cron组件

sudo cron -f &

查看cron状态

crontab使用

1.查询定时任务

crontab -l

查询定时任务
2.创建定时任务

crontab -e

创建定时任务
  • 定时任务项格式:

m h dom mon dow command

以上格式从左至右分表表示:

|字母意义|分钟|小时|日期|月份|周|命令行|
|:-:|:-:|
|数字范围|059|023|131|-12|0~7|要执行的任务|
其中周中0和7均表示周日。
此外还有一些辅助字符:

符号 意义
* 表示接受任何时刻
, 表示分割字段,接受以,(逗号)隔开的多个时刻
- 表示一段范围内的时刻,接受-(减号)区间内的各个时刻
/n 表示每隔n时刻,执行定时任务

示例:

*/1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)

表示每隔1分钟执行touch...的指令。

  • 定时任务文档编辑
    crontab -e命令是针对使用者设计的,用户添加任务时会在/var/spool/cron/crontabs/下面创建一个以用户名命令的任务文档,这样可以做到隔离,不会引起混乱。
    而系统设置定时任务可以在/etc/crontab中配置:
    系统定时任务
3.删除定时任务

crontab -r

经简友提醒,这个命令确实比较危险,它会删除当前用户的所有定时任务,所以删除某些定时任务,最好编辑对应的文件。具体见他的评论:)

总之,cron这个服务的最低侦测限制是分钟,所以cron会每分钟读取一次/etc/crontab与/var/spool/cron/crontabs里面的任务文档,所以也可以直接编辑/etc/crontab,添加定时任务,保存后,cron就会按照你设定的周期去执行了。

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

推荐阅读更多精彩内容

  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,839评论 0 4
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linu...
    happeace阅读 1,806评论 0 53
  • 简介:Crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。本课程通过对Cron...
    Amisuer阅读 4,711评论 0 1
  • Liunx定时任务 crontab(持续运行) cron守护进程 cron服务 systemctl start ...
    liudongdong阅读 703评论 0 5
  • 辞职,放松 沉淀 反思 深度思考 浮躁 自我价值 功力主义哲学 宗教的观念 享乐主义 自己的内心 最近两天朋友来深...
    TinyCowry阅读 298评论 0 0