0x00 简介

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

cron的配置文件称为“crontab”,是“cron table”的简写。

0x01 cron服务

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

  • service crond start //启动服务
  • service crond stop //关闭服务
  • service crond restart //重启服务
  • service crond reload //重新载入配置
  • service crond status //查看服务状态

0x02 配置

cron在3个地方查找配置文件:

2.1 /var/spool/cron/

这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名。

比如tom建的crontab任务对应的文件就是/var/spool/cron/tom,一般一个用户最多只有一个crontab文件。

2.2 /etc/crontab

这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

MAILTO=root:当 /etc/crontab 这个档案中的例行性命令发生错误时,会将错误讯息或者是屏幕显示的讯息传给谁?

  • 由于 root 并无法再用户端收信,因此,我通常都將这个 e-mail 改成自己的账号,好让我随时了解系统的状态!

  • 01 * * * * root run-parts /etc/cron.hourly:在 #run-parts 这一行以后的命令,我们可以发现,五个数字后面接的是 root ,这一行代表的是『执行的级别为root身份』

  • 当然,你也可以将这一行改为成其他的身份!而 run-parts代表后面接的 /etc/cron.hourly 是『一个目录内(/etc/cron.hourly)的所有可执行文件』。

  • 也就是说,每个小时的01分,系统会以root身份去/etc/cron.hourly这个目录下执行所有可执行的文件!后面三行也是类似的意思!你可以到 /etc/ 底下去看看,系统本来就预设了这4个目录!你可以将每天需要执行的命令直接写到/etc/cron.daily即可。

2.3 /etc/cron.d/

这个目录用来存放任何要执行的crontab文件或脚本。

0x03 命令参数

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ] 选项 描述
e 编辑计划任务
l 列出计划任务
r 删除计划任务
i 删除之前确认
u 指明所属用户

0x04 常见用法

4.1 添加或更新crontab中的命令

crontab -e

添加或更新crontab中的命令

crontab -u username -e

默认情况下,系统会编辑当前登录用户的crontab命令集合。需要编辑其他用户的命令集合,需要使用到如上的命令

4.2 查看已设置的Crontab命令

crontab -l

查看当前系统登录用户的Crontab命令集合

crontab -u username -l

查看其他用户的Crontab命令集合

0x05 crontab文件内容分析

cat /etc/crontab

前四行是用来配置crond任务运行的环境变量

第一行SHELL变量指定了系统要使用哪个shell,这里是bash

第二行PATH变量指定了系统执行命令的路径

第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户

如果MAILTO变量的值为空,则表示不发送任务执行信息给用户

第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。

小 结:

  • 数字的表示最好用2为阿拉伯数字显示
  • 周和日最好不要同时用
  • 定时任务要加注解
  • 可以定向到日志文件或者空文件
  • 定时任务一定是绝对路径,且目录必须存在才能出结果
  • crontab 服务一定要开启运行

0x06 参考链接

https://www.cnblogs.com/ftl1012/p/crontab.html

https://www.jianshu.com/p/3528b484302f

https://www.cnblogs.com/yanzi-meng/p/9156812.html

Linux下的crontab定时执行任务命令的更多相关文章

  1. Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  2. (二)Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

  3. Linux下的crontab定时执行任务命令详解(参考:https://www.cnblogs.com/longjshz/p/5779215.html)

    在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间. cron的配置文件成为 ...

  4. linux下使用crontab定时执行脚本

    使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...

  5. Linux下的at定时执行任务命令详解

    之前说了使用crontab实现定时执行任务,假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了.一.at服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下 ...

  6. Linux下的crontab定时执行任务详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  7. Linux下的crontab定时执行任务简要说明

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  8. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  9. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

随机推荐

  1. 【洛谷 P4070】 [SDOI2016]生成魔咒(后缀自动机)

    题目链接 建出\(SAM\)后,不同子串个数就是\(\sum len(i)-len(fa(i))\) 因为\(SAM\)在线的,所以每加入一个字符就能直接加上其贡献,于是这道题就没了. 因为\(x\) ...

  2. webRTC client 源码环境工具配置

    以下操作真实实验过,安卓,苹果均可成功 环境 Mac 10.13.6 Xcode 11 翻墙代理:Lantern 专业版 Python 2.7.10 设置 git 代理 #设置git代理 $ git ...

  3. 用JS实现一个斗地主发牌器

    //调用随机数,在我上一篇博文讲过这一个函数. function roundNum(min = 0, max = 0) { if (!isNaN(min) && !isNaN(max) ...

  4. JS 中Json常用操作

    转自: https://www.jianshu.com/p/6501b0f3124f 直接定义json var json = {"name": "小明", &q ...

  5. Tortoise SVN常见图标含义及图标无法正常解决方法!

    转自:https://blog.csdn.net/xh16319/article/details/10582455 绿色的勾:图标表示这是一个最新取出的工作副本,他的Subversion状态是norm ...

  6. 关于vue-svg-icon的使用方式

    前言 工作中用到svg格式的图标,既然是svg,当然不想用古老的img方式引用,希望能凭借定义svg的fill属性,随意定义图标的颜色:同时不想将整段svg代码写入组建内,于是找到了使用vue-svg ...

  7. cscope安装

    安装 # apt-get install cscope .vimrc中添加 if has("cscope") set csprg=/usr/bin/cscope set csto= ...

  8. WPF如何设置启动窗口

    在做系统时,我们想在启动时显示自己想显示的界面,和Winform不同的是它有两种方法 1.在App.xaml中 <Application x:Class="WpfApp1.App&qu ...

  9. VSCode - Beautify插件配置

    注: 本文摘自 黑火巨雷 - 简书 1. 在工作目录下建立.jsbeautifyrc文件 官方文档 { "brace_style": "none,preserve-inl ...

  10. Linux之nginx负载均衡

    Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现 ...