写点什么

linux 之 crontab 使用技巧

用户头像
入门小站
关注
发布于: 刚刚

crontab 命令主要用于设置命令行或者脚本周期性的执行。该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行。本文主要讲述 crontb 命令的基本语法和配置方法。

crontab 命令格式

crontab [-u user] -e -l -r
复制代码


  • -u 用户名,不加-u 参数默认为当前用户。

  • -e 编辑 crontab 文件。

  • -l 列出 crontab 文件中的内容。取值来源为/var/spool/cron 下对应的文件

  • -r 删除 crontab 文件。

crontab 命令格式

# Example of job definition: .---------------- minute (0 - 59) |  .------------- hour (0 - 23) |  |  .---------- day of month (1 - 31) |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat |  |  |  |  | *  *  *  *  * command/script
复制代码


一个定时任务的配置共包括 6 个字段,分别是分、时、日、月、周、命令行或脚本,每一列取值的范围或者含义如上述格式中注释描述。特别注意一点是命令行或者脚本一定要配置成绝对路径。

特殊字段说明

  • 星号(*):代表所有可能的值,例如在第 1 列表示每分钟执行,第 2 列表示每小时执行,第 3 列表示每天执行。

  • 逗号(,):可以用逗号隔开的值表示指定一个列表范围,例如,在第 1 列设置 15,30,45 表示在第 15 分钟、30 分钟、45 分钟执行。

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

  • 正斜线(/):可以用正斜线指定时间的间隔频率,例如第 2 列设置成"*/2",表示每两小时执行一次。

每天晚上 10 点运行rumenz.sh脚本

0 22 * * * /root/rumenz.sh
复制代码

每月的 1,3,7 的早上 8.30 运行rumenz.sh

> 30 8 1,3,7 * * /root/rumenz.sh
复制代码

每周六,日的的凌晨 2 点执行rumenz.sh

> 0 2 * * 6,0 /root/rumenz.txt
复制代码

每天的的 18 点到 23 点每 30 分执行rumenz.sh

0,30 18-23 * * /root/rumenz.sh
//或者
*/30 18-23 * * /root/rumenz.sh
复制代码

每天凌晨 2 点访问一个网址

> 0 2 * * * /usr/bin/curl https://rumenz.com
复制代码

crontab 每 10 秒执行一次rumenz.sh

* * * * * /root/rumenz.sh* * * * * sleep 10;/root/rumenz.sh* * * * * sleep 20;/root/rumenz.sh* * * * * sleep 30;/root/rumenz.sh* * * * * sleep 40;/root/rumenz.sh* * * * * sleep 50;/root/rumenz.sh
复制代码

每 90 分钟运行一次rumenz.sh

0 0-21/3 * * * /root/rumenz.sh30 0-22/3 * * * /root/rumenz.sh
复制代码


需要两个表达式实现

每 90 秒执行一次rumenz.sh

*/3 * * * * /root/rumenz.sh*/3 * * * * sleep 90;/root/rumenz.sh
复制代码


需要两个表达式实现


原文链接:https://rumenz.com/rumenbiji/linux-crontab-skills.html

微信公众号:入门小站

发布于: 刚刚阅读数: 2
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
linux之crontab使用技巧