前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >crontab中如何实现每隔多少天执行一次脚本

crontab中如何实现每隔多少天执行一次脚本

作者头像
拓荒者
发布于 2019-07-01 10:04:10
发布于 2019-07-01 10:04:10
9.1K0
举报
文章被收录于专栏:运维经验分享运维经验分享

奶油菠萝包sky 

1. # 下午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的归纳总结

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

?

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

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

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

思路: 

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

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

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

思路:

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

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

  • 每五分钟执行     */5 * * * *
  • 每五小时执行     0 */5 * * *
  • 每天执行         0 0 * * *
  • 每周执行         0 0 * * 0
  • 每月执行         0 0 1 * *
  • 每年执行         0 0 1 1 *
  • 12
  • # 每个月的1号,11号,21号,31号,执行HTTP服务重启0 0 */10 * * /etc/init.d/apache2 restart

DRAGOONRL  来自电脑网络类芝麻团 推荐于2017-11-22

crontab -e之后编辑, 30 21 */2 * * 加上待执行的操作 这个示例是每2天的21:30执行相应的操作 详细看下面的介绍 (转自http://www.jb51.net/LINUXjishu/19905.html) 基本格式 : *  *  *  *  *  command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 crontab文件的一些例子: 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启apache。 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、10、22日的4 : 45重启apache。 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每周六、周日的1 : 10重启apache。 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每星期六的11 : 00 pm重启apache。 * */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三的11点重启apache 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 一月一号的4点重启apache 名称 : crontab 使用权限 : 所有使用者 使用方式 : crontab file [-u user]-用指定的文件替代目前的crontab。 crontab-[-u user]-用标准输入替代目前的crontab. crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的crontab. crontab-d[user]-删除用户目前的crontab. crontab-c dir- 指定crontab的目录。 crontab文件的格式:M H D m d cmd. M: 分钟(0-59)。 H:小时(0-23)。 D:天(1-31)。 m: 月(1-12)。 d: 一星期内的天(0~6,0为星期天)。 cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量 说明 : crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设 定自己的时程表。 参数 : crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数 来指定使用那个文字编辑器(比如说 setenv VISUAL joe) crontab -r : 删除目前的时程表 crontab -l : 列出目前的时程表 crontab file [-u user]-用指定的文件替代目前的crontab。 时程表的格式如下 : f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执 行的程序。 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推 使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 例子 : #每天早上7点执行一次 /bin/ls : 0 7 * * * /bin/ls 在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup : 0 6-12/3 * 12 * /usr/bin/backup 周一到周五每天下午 5:00 寄一封信给 alex@domain.name : 0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 20 0-23/2 * * * echo "haha" 注意 : 当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之 后加上 > /dev/null 2>&1 即可 例子2 : #每天早上6点10分 10 6 * * * date #每两个小时 0 */2 * * * date #晚上11点到早上8点之间每两个小时,早上8点 0 23-7/2,8 * * * date #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * mon-wed date #1月份日早上4点 0 4 1 jan * date 范例 $crontab -l 列出用户目前的crontab.

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
crontab设置定时任务
基本格式 : *  *  *  *  *  command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 crontab文件的一些例子: 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启apache。 45 4 1,10,22
wangxl
2018/03/07
1.1K0
linux crontab 每隔10秒执行一次[通俗易懂]
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。
全栈程序员站长
2022/11/01
9.2K0
Linux crontab 命令格式与具体样例
基本格式 : *  *  *  *  *  command 分 时 日 月 周 命令
全栈程序员站长
2022/07/14
7530
crontab 详细用法 定时任务
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行
用户1289394
2021/05/31
1.5K0
Linux crontab 命令
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
OwenZhang
2021/12/08
1.5K0
crontab介绍安装及每秒运行
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
OwenZhang
2022/01/17
6970
crontab介绍安装及每秒运行
Linux中Crontab(定时任务)命令详解及使用教程
Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
天乐404
2023/11/16
6.9K0
Linux中Crontab(定时任务)命令详解及使用教程
Linux crontab 命令基本说明
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
Lansonli
2021/10/09
5720
Linux crontab命令
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
Li_XiaoJin
2022/06/12
1.8K0
Linux crontab命令
计划任务 crontab、at
* * * * * sleep 10; php /home/php/crontab/tolog.php
以谁为师
2019/05/29
1K0
Crontab安装以及以些常见问题
##安装 crontab 如果在 centos 下发现发现没有安装crontab命令, 可以用如下方法安装: yum install vixie-cron crontabs chkconfig crond on //设置为开机自动启动 service crond start //启动 crontab 查看 crontab 任务列表: crontab -l 添加 crontab 执行任务: crontab -e 重启: /etc/init.d/crond restart 重新加载: /etc/init.
zcqshine
2018/05/11
1.6K0
crontab 转
安装crontab: [root@CentOS ~]# yum install vixie-cron [root@CentOS ~]# yum install crontabs
双面人
2019/04/10
7560
Crontab 定时执行脚本配置
vixie-cron软件包是cron的主程序; crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
hankleo
2021/07/27
1.4K0
crontab的使用方法_crontab用法
10 00 * * * /home/ubuntu/cron_cmd.sh > /home/ubuntu/cron_log 2>&1
全栈程序员站长
2022/09/23
6770
yii2 commands模式以及配置crontab定时任务的方法
一 ,检测环境: 首先我们切换到项目根目录,yii2正常安装的话有一个commands文件夹,里面有一个示例文件HelloController.php
用户2323866
2021/06/30
1.1K0
crontab 命令详细用法及示例
​ crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
用户9949933
2023/02/24
1.6K0
Linux-Crontab计划任务
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表
11pmsleep
2022/10/31
2.1K0
每天一个Linux命令(1):crontab
crontab 定时执行操作命令,每一个用户拥有自己的crontab,配置文件存在/var下面,不能被直接编辑。 -e 设置计时器 -l 列出当前计时器的设置 -r 删除计时器的设置 -i 交互式
Python中文社区
2018/01/31
9710
每天一个Linux命令(1):crontab
CentOS下使用crontab命令来定时执行任务
原文地址:http://www.centoscn.com/CentOS/help/2015/0424/5261.html
大道七哥
2019/09/10
2.7K0
Linux系统之计划任务crontab的基本使用
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
江湖有缘
2023/11/03
1.8K1
Linux系统之计划任务crontab的基本使用
相关推荐
crontab设置定时任务
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档