首页 > 其他分享 >crontab 定时任务

crontab 定时任务

时间:2023-09-22 14:12:16浏览次数:33  
标签:bin 11 backup crontab 任务 sh 定时 root

crontab 详细用法 定时任务

一、名词解释

crontab命令常见于Unix类Unix的操作系统之中,用于设置周期性被执行的指令。使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。

二、使用方式

2.1 如何添加crontab 定时任务

复制代码
方式一:
]# crontab –e
# 每天早上5点运行 /root/bin/backup.sh
0 5 * * * /root/bin/backup.sh

方式二(不常用):
]# vi /etc/crontab
# 每天早上5点运行 /root/bin/backup.sh
0 5 * * * /root/bin/backup.sh
复制代码

2.2 cron 描述

复制代码
 *      *      *      *       *        command
minute   hour    day   month   week      command
分          时    日     月      星期       命令

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

Crontab 选项
以下是 crontab 的有效选项:
crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
crontab –l : 显示 crontab 文件。
crontab -r : 删除 crontab 文件。
crontab -ir : 删除 crontab 文件前提醒用户。

 
复制代码

2.3 示例

复制代码
# 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
1 0 * * * /root/bin/backup.sh

# 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh

# 下面例子与上面的例子效果一样:
59 11 * * 1-5 /root/bin/backup.sh

# 每5分钟运行一次命令
*/5 * * * * /root/bin/check-status.sh

# 每个月的第一天 1:10 p.m 运行
10 13 1 * * /root/bin/full-backup.sh

# 每个工作日 11 p.m 运行。
0 23 * * 1-5 /root/bin/incremental-backup.sh

# 每隔一分钟执行一次脚本 /opt/bin/test-cron.sh
*/1 * * * * root  /opt/bin/test-cron.sh

# 每周六、周日的3点10分执行hello程序。
10 3 * * 0,6 hello

# 从周四到周六的4点15分执行hello程序。
15 4 * * 4-6 hello

# 每周日凌晨4点,更新系统
0 4  * * 0     root emerge --sync && emerge -uD world    

#每月1号凌晨2点,清理/tmp下的文件
0 2 1 * *     root   rm -f /tmp/*

#每年5月6日给robin发信祝他生日快乐
0 8 6 5 *   root     mail  robin < /home/galeki/happy.txt

假如,我想每隔2分钟就要执行某个命令,或者我想在每天的6点、12点、18点执行命令,诸如此类的周期,可以通过 “ / ” 和 “ , ” 来设置:
# 每两分钟就执行
*/2   *   *   *   *   hello

# 每天6点、12点、18点执行hello
0 6,12,18   *   *   *   hello

# 晚上11点到早上8点之间每两个小时,早上八点执行一个命令
0 23-7/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt

# 每个月的4号与每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line

# 每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

# 每月1、10、22日的4 : 45重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

# 每周六、周日的1 : 10重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

# 每天18 : 00至23 : 00之间每隔30分钟重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

# 每一小时重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart

# 晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

# 在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

# 周一到周五每天下午 5:00 寄一封信给
0 17 * * 1-5 mail -s "hi"  < /tmp/maildata

# 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"

# 每天早上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

标签:bin,11,backup,crontab,任务,sh,定时,root
From: https://www.cnblogs.com/lcword/p/17722196.html

相关文章

  • JS实现任务队列
    引言假设有这么一个场景:前端订阅后台数据的变化,如果发生变化,则触发订阅回调;回调函数中,会执行一些耗时操作,如:请求接口,发送短信,存历史数据等;要求以上所有的操作都必须按照订阅触发的顺序执行;我们都知道,回调本身就是一种异步操作,我们仅仅依靠订阅回调无法保证回调中任务执行顺......
  • 6 定时器 &中断管理&资源管理
    生成函数周期,多久触发一次定时器(从定时器启动开始计算) 触发什么呢?回调函数被调用,被谁调用呢1,tick中断去调用timer函数 Linux中使用这个 (定时器回调函数若执行时间过长,会阻碍其他定时器函数执行)2,freeRTOS中一般定时器守护函数设置优先级比较高使用定时器的话,需要定义......
  • java定时器
    好多朋友用过Windows的任务计划,也有不少程序迷自己曾写过时钟报警、系统自动关机等趣味程序,可却很少有朋友在Web工程中实现过类似功能。  有人说Timer只能规定从现在开始的多长时间后,每隔多久做一次事或在什么时间做一次事,那我想在每月1号或每天12点做一项工作如何做呢?你只要......
  • Window计划任务调用exe程序时日志文件没有写出问题
    转自:https://blog.csdn.net/qq273766764/article/details/50729967/在之前写的exe程序中均有写文件日志操作,直接运行时是有日志文件的,但是配置到计划任务中就没有日志文件产生,程序的读写权限都已配置,但仍是没有日志文件之后百度了一下,原因是由于没有配置操作中的起始于选项,程......
  • 在 Python 中,可以使用线程池(ThreadPoolExecutor)和 wait 方法来等待线程池中的所有任务
    importconcurrent.futures#创建一个线程池withconcurrent.futures.ThreadPoolExecutor()asexecutor:#提交任务给线程池task1=executor.submit(func1,arg1)task2=executor.submit(func2,arg2)task3=executor.submit(func3,arg3)#使......
  • systemd timer:取代cron和at的定时任务
    回到Systemd系列文章大纲systemdtimer:取代cron和at的定时任务cron和systemdtimer实现定时任务的比较Linux环境下,cron是使用最广泛的定时任务工具,但它有一些不方便的地方。比如它默认:只支持分钟级别精度的定时任务定时规则太死板当调度到本次任务时,如果上次调度的任务仍......
  • 定时器简单配置
    @Configuration@EnableSchedulingpublicclassScheduleConfigimplementsSchedulingConfigurer{@OverridepublicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){taskRegistrar.setScheduler(Executors.newScheduledThreadPool(5));......
  • 时间格式化以及指定时区(time&&timezone)
    工作中经常遇到按照指定格式的时间进行展示。可参考以下脚本逻辑满足需求Date.prototype.PtTimeByFormat=function(fmt){varo={"M+":this.getMonth()+1,//月份"d+":this.getDate(),//日"H+":this.getHours(),//小时"m+":this.getMi......
  • 时间格式化以及指定时区(time&&timezone)
    工作中经常遇到按照指定格式的时间进行展示。可参考以下脚本逻辑满足需求Date.prototype.PtTimeByFormat=function(fmt){varo={"M+":this.getMonth()+1,//月份"d+":this.getDate(),//日"H+":this.getHours(),//小时"m+":this.getMi......
  • flowable一直查询定时任务act_ru_timer_job问题
    flowable:#1.false:默认值,Flowable启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常#2.true:启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表#3.create_drop:启动时自动创建表,关闭时自动删除表#4.drop_create:启动时,删除旧......