crontab实现每隔多少天执行一次脚本的两种方法

前言

我们大家在工作中,经常会碰到每隔多少天/小时/分钟执行一次脚本,或某个命令的情况。如果是每隔多少小时,多少分运行一次程序,在crontab中可能比较好实现一些,下面是一些示例及crontab的格式说明:

具体示例:

# 下午6点到早上6点,每隔15分钟执行一次脚本
0,15,30,45 18-06 * * * /bin/bash $HOME/script.sh > /dev/null 2>&1
# 每两小时,重启一次服务
* */2 * * * /etc/init.d/apache2 restart

下面是每隔多少分钟,每隔多少小时,每天/每周/每月/每年的crontab的归纳总结

  • 每五分钟执行     */5 * * * *
  • 每五小时执行     0 */5 * * *
  • 每天执行         0 0 * * *
  • 每周执行         0 0 * * 0
  • 每月执行         0 0 1 * *
  • 每年执行         0 0 1 1 *

如果说是每个月的每隔10天来执行某个脚本的话,同样可以写成:

# 每个月的1号,11号,21号,31号,执行HTTP服务重启
0 0 */10 * * /etc/init.d/apache2 restart

但如果是按自然天数,比如说每27天,执行一次脚本,这个要如何实现呢? 如果是这种情况,显然不能通过crontab直接实现,必须迂回实现。

下面是能想到的两种方法。

【方法一】通过脚本控制时间来实现

思路:

1) 在脚本running.sh中设置要执行的次数,这里假如10次,每次间隔27天,script.sh为要执行的脚本

2) 然后执行nohup bash running.sh &将其放置在后台让其自动执行

【方法二】通过crontab间接实现

思路:

1) 每天定时执行running.sh脚本,再在脚本running.sh里面判断,当间隔时间满足条件时

2) 执行script.sh脚本,同时修改上次执行时间,以便于下次执行

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 详解Unix/Linux中周期执行指令Crontab命令

    简介 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行.这类作业一般称为cron jobs. cron 是 Unix/Linux 中提供定期执行 shell 命令的服务,包括 crond 和 crontab 两部分: crond: cron 服务的守护

  • Ubuntu系统下用Crontab命令定时执行PHP文件详解

    前言 一般我在开发中,常用的定时任务有2种.一种是直接调用PHP文件执行,还有一种是调用远程URL地址. 首先,先来亮相一下我们今天的主角,Crontab命令.这个是系统定时命令,作用是定时的去执行一些任务.包含一些系统级别的任务,当然用户也可以直接借用该命令来实现自己的一些计划任务. 该命令一般跟随系统启动,我们可以使用一下命令来查看是否cron是否启动 pgrep cron 如果启动了,会返回一个进程id Crontab文件一般存放于/etc目录下.我们使用,crontab -e来编辑cro

  • linux crontab 实现每秒执行的实例

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执行动作,非常简单,就是把当前时间写入log. <?php file_put_contents('/home/fdipzone/php/crontab/run.log', date('Y-m-d H:i:s')."\r\n", FILE_APPEND); ?> crontab -e 输入以下语句,然后 :wq 保存退出.

  • crontab无法执行php的解决方法

    本文分析了crontab无法执行php的解决方法.分享给大家供大家参考,具体如下: 用crontab跑php程序时,如何去调试,各人有各人的方法.我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的. 一.php文件有没有执行权限 复制代码 代码如下: [root@linux cron]# ls -al |grep del -rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php  如果没有X,说明没有执行权限,

  • linux下定时执行任务的方法及crontab 用法说明(收集整理)

    linux下定时执行任务的方法 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为"crontab",是"cron table"的简写. 一.cron在3个地方查找配置文件: 1./var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的cron

  • crontab每10秒执行一次的实现方法

    实例如下: vim /var/spool/cron/root * * * * * sleep 10; /usr/bin/curl http://localhost/index.php * * * * * sleep 20; /usr/bin/curl http://localhost/index.php * * * * * sleep 30; /usr/bin/curl http://localhost/index.php * * * * * sleep 40; /usr/bin/curl ht

  • 使用linux命令crontab间隔时间执行其它命令

    1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序.每个用户可以建立自己的调度crontab. 如: 复制代码 代码如下: [root@dave ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly

  • linux使用crontab实现PHP执行计划定时任务

    首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行.要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab.该文件使用的格式和 /etc/crontab 相同.当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名

  • Centos 7下利用crontab定时执行任务详解

    前言 cron服务是Linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload 以上1-4行分别为启动.停止.重启服务和重新加载配置. 要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond st

  • 如何使用Linux的Crontab定时执行PHP脚本的方法

    下面介绍Crontab的两种方法. 一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本. 每一小时执行myscript.php如下: 复制代码 代码如下: # crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php /usr/local/bin/php为PHP程序的路径. 二.在Crontab中使用URL执行脚本 如果你的P

随机推荐