美文网首页
crontab 基础配置使用

crontab 基础配置使用

作者: wayyyy | 来源:发表于2022-05-23 00:05 被阅读0次

在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的。crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务。

权限控制

crontab 是通过 /etc/cron.allow 和 /etc/cron.deny 文件来限制某些用户是否可以使用 crontab 命令的:

  • 当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高。
  • 当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令。
常用命令
-u user 用来设定某个用户的 crontab 服务
-e      编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l      显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r      从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。 
-i      在删除用户的 crontab 文件时,给确认提示。
定时任务配置

crontab 定时任务非常简单,只需执行crontab -e命令,然后输入想要定时执行的任务即可。
当我们执行crontab -e命令时,打开的是一个文件,而且操作方法和 Vim 是一致的。这个文件的格式才是我们真正需要学习的内容,文件格式如下:

# crontab -e
  进入 crontab 编辑界面。会打开Vim编辑你的任务
  * * * * * 执行的任务

通过 5 个*来确定命令或任务的执行时间的,这 5 个*

  • 第一个* 一小时当中的第几分钟(minute)0~59
  • 第二个* 一天当中的第几小时(hour)0~23
  • 第三个* 一个月当中的第几天(day)1~31
  • 第四个* 一年当中的第几个月(month)1~12
  • 第五个* 一周当中的星期几(week) 0~7(0和7都代表星期日)

时间特殊符号含义:

时间 含义
* 代表任何时间。比如第一个*就代表一小时种每分钟都执行一次的意思。
, 代表不连续的时间。比如 "0 8,12,16 * * * 命令" 代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
- 代表连续的时间范围。比如 "0 5 * * 1-6 命令" 代表在周一到周六的凌晨 5 点 0 分执行命令。
/ 代表每隔多久执行一次。比如 "*/10 * * * * 命令" 代表每隔 10 分钟就执行一次命令。

举例:
45 22 * * * 命令,表示 在 22 点 45 分执行命令
0 17 ** 1命令,表示在每周一的 17 点 0 分执行命令
0 5 1,15**命令,表示在每月 1 日和 15 日的凌晨 5 点 0 分执行命令
40 4 ** 1-5命令,表示在每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 ***命令,表示在每天的凌晨 4 点,每隔 10 分钟执行一次命令
0 0 1,15 * 1命令,表示在每月 1 日和 15 日,每周一个 0 点 0 分都会执行命令,注意:星期几和几日最好不要同时出现,因为它们定义的都是天,非常容易让管理员混淆

crontab -e编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。

在书写 crontab 定时任务时,需要注意以下几个事项:

  1. 6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。
  2. crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
  3. 在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
  4. 在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

参考资料
1、http://c.biancheng.net/view/1092.html

相关文章

  • crontab 基础配置使用

    在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的。crond 进程每分...

  • Linux下配置crontab运行python脚本(anacon

    Linux下配置crontab运行Python脚本 设置crontab,首先使用命令crontab -e编辑cro...

  • 用crontab在Linux下执行定时任务

    crontab是什么 crontab是Linux的一个配置定时任务的命令,使用它可以灵活地配置一些定时任务。 cr...

  • day23-Linux计划任务

    crond计划任务 Crontab配置文件记录了时间周期的含义 crontab常用参数及选项 使用-r会删除目前所...

  • Python-crontab和Django-crontab 实现

    Linux中可以使用crontab设置定时任务,可以通过命令crontab -e编写任务,也可以直接写配置文件设置...

  • nginx日志文件切割

    使用脚本对nginx日志文件进行按天切割 然后配置crontab进行每天切割使用 使用logrotate对ngin...

  • python crontab 坑

    最近用Python写了一些数据统计的脚本,并使用crontab自动执行,但是配置crontab总是要过几个坑才行的...

  • 一文精通linux定时任务crontab

    此篇技术博文主要介绍的是crontab,Linux下的计划任务管理工具。涉及内容包括crontab使用配置、常见坑...

  • 【CRONTAB定时任务】

    安装 编写定时任务 crontab配置文件 系统配置 /etc/crontabvi /etc/crontab 环境...

  • crontab 使用

    前言 crontab是经常用作定时任务处理的命令,无论是开发还是运维都会经常使用 查看crontab配置 /var...

网友评论

      本文标题:crontab 基础配置使用

      本文链接:https://www.haomeiwen.com/subject/cdtlprtx.html