Linux中Cron任务间隔执行:每隔几分钟/几小时/几天

摘要:
例如,月份值中的星号表示在满足其他约束条件后每月执行该命令。3、 配置实例#每1小时执行一次ls0*/1***ls#每2小时执行一次ls0*/2**ls#每3小时执行一一次ls0*/3**ls#每4小时执行一个ls0*/4**ls#每隔10天执行一次ls 00*/10**ls#每天1:00执行ls01**lshttps://blog.csdn.net/hot_vc/article/details/48261195===================================================================cron表达式应每1小时30分钟执行一次。注意:它不涉及日历,例如计时任务的要求:每90分钟应该执行多少秒/分钟/小时?90*2=180=3小时。应该添加两个cron。表达式:cron10301/3**?

一、配置

  1)全局用户配置文件(/etc/crontab)

  直接VI等编辑就可以。

  2)个人用户配置(临时配置)

  

  加任务:
    crontab -e
    0 */1 * * * command
    0 */2 * * * command
  查询任务是否加了:
    crontab -l
    0 */1 * * * command
    0 */2 * * * command 

二、配置格式

*   *  *  *  *  command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

相关参数详细说明:

星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

三、配置实例
#每隔1个小时执行一次 ls

0 */1 * * * ls 

 

#每隔2个小时执行一次 ls 

0 */2 * * * ls 

 

#每隔3个小时执行一次 ls 

0 */3 * * * ls 

 

#每隔4个小时执行一次 ls 

0 */4 * * * ls

  

#每隔10天执行一次 ls 

0 0 */10 * * ls

#每天1点执行 ls 

0 1 * * * ls

出处:https://blog.csdn.net/hot_vc/article/details/48261195

===================================================================

cron 表达式 1小时30分钟,(90分钟或100分钟)执行一次

注:不涉及日历(不指定某月天(周几)等),比如定时任务的需求:间隔 多少秒/分/时( 每隔99秒,每隔100分钟执行等)

每隔90分钟执行一次 
    90*2= 180 = 3个小时
   需要添加2个cron,间隔3小时

表达式:
cron1 0 30 1/3 * * ?   (1.30,4.30,7.30,,,,)
cron2 0 0  0/3 * * ?   (3.00,6.00,9.00,,,,)

每隔100分钟

    100*3= 300 = 5个小时 
    需要添加3个cron,间隔5小时;

cron1 0 40 1/5 * * ?   (1.40,6.40,11.40,,,)
cron2 0 20 3/5 * * ?   (3.20,8.20,13.20,,,,)
cron2 0 0  5/5 * * ?   (5.00,10.00,15.00)

每隔2个半小时执行一次 
    150*2= 300 = 5个小时
   需要添加2个cron,间隔5小时

表达式:
cron1 0 30 2/5 * * ?   (2.30,7.30,12.30,,,,)
cron2 0 0  0/5 * * ?   (5.00,10.00,15.00,,,,)

受其他博文启发,一个定时任务实现不了,那这个任务,就添加多个触发时间,来实现;

需求1:从0点开始,每隔2个半小时,执行一次
思路记录:
 1.先列出,我们预期的执行时间:

       2.30,5.00,7.30,10.00,12.30,15:00

2.找规律:我们知道间隔 整数(1,2,3,,,)个小时的cron表达式;根据此前提,找间隔 整数个小时 时间的规律

3.规律结果

(2.30,7.30,12.30,,,,)       两点半开始,间隔5小时    那么此表达式==>0 30 2/5 * * ?

(5.00,10.00,15.00,,,,)      0点开始,间隔5小时        那么此表达式==> 0  0/5 * * ?

需求2:在指定时间t后,启动定时任务a,

      可以采用:.再添加一个执行定时任务,动态添加那要求任务a,在那指定的时间t开始执行一次,有且只调用一次

总结:间隔 n 个小时,执行一次

              1.找出n和60的最小公倍数:gbs;

              2.gbs除60=间隔时间tt       (tt<23?)

             3.gbs除n=cron表达式个数

附加表达式在线测试网站:  http://cron.qqe2.com/

注意:粘贴我们自己写的表达cron表达式,查看运行结果时,得核对一下表达式是否被修改;我就遇到  0/3 变===>0-3


原文链接:https://blog.csdn.net/weixin_38981413/java/article/details/103755671

===

免责声明:文章转载自《Linux中Cron任务间隔执行:每隔几分钟/几小时/几天》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇uni-app爬坑之旅_开发一个自己的app_day55_实现不规则区域的点击判定apache 开机自启动脚本设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下操作PostgreSQL的常用命令

一般性: copyright 显示PostgreSQL的使用和发行许可条款g [文件] or; 执行查询 (并把结果写入文件或 |管道)h [名称] SQL命令语法上的说明,用*显示全部命令的语法说明q 退出 psql 查询缓存区e [FILE] [LINE] 使用外部编辑器编辑查询缓存区(或文件)ef [FUNCNAME [LINE]] 使用外部编辑器编...

Linux(Centos7)下redis5缓存服务集群分布式搭建

注意:可以查看Redis官网查看集群搭建方式,连接如下 https://redis.io/topics/cluster-tutorial 集群中应该至少有三个节点,每个节点有一备份节点。需要6台服务器。 如果条件有限,可以搭建伪分布式,以下步骤是在一台 Linux 服务器上搭建有6个节点的 Redis集群。 准备工作:安装依赖包 [root@localho...

【开发笔记】- linux下将rpm包转为deb包

 1. 先安装 alien 和 fakeroot 这两个工具,其中前者可以将 rpm 包转换为 deb 包。安装命令为: sudo apt-get install alien fakeroot    2. 将需要安装的 rpm 包下载备用,假设为 package.rpm。    3. 使用 alien 将 rpm 包转换为 deb 包:fakeroo...

Linux知识积累 (9) 创建用户、分配权限和更改所有者

一、useradd和adduser 1、useradd命令: 用于Linux中创建的新的系统用户。 useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码. 而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。 2、adduser命令:  在Slackware中,a...

Linux中编译C文件

C/C++程序编译的过程 预处理,展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i或者cpp source.c生成。 编译。这里是一个狭义的编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成。默认生成source.s文件。 汇编。汇编即将上一步生成的汇编代码翻译成对应的...

linux 下创建管理员权限账户

1、添加用户,首先用adduser命令添加一个普通用户,命令如下:  #adduser tommy  //添加一个名为tommy的用户  #passwd tommy //修改密码  Changing password for user tommy.  New UNIX password: //在这里输入新密码  Retype new UNIX passwo...