首页 > 系统相关 >Linux Crontab命令定时任务基本语法与操作教程

Linux Crontab命令定时任务基本语法与操作教程

时间:2022-10-20 23:45:40浏览次数:51  
标签:教程 实例 root Crontab sh crontab Linux 执行 backup

一、Crontab查看编辑重启

 

 

1、查看crontab定时执行任务列表

 

 

crontab -l

 

 

2、编辑crontab定时执行任务

 

 

crontab -e

 

 

3、删除crontab定时任务

 

 

crontab -r

 

 

4、相关命令:

 

 

sudo service crond start #启动服务

 

 

sudo service crond stop #关闭服务

 

 

sudo service crond restart #重启服务

 

 

sudo service crond reload #重新载入配置

 

 

sudo service crond status #查看服务状态

 

 

二、Crontab基本格式语法

 

 

crontab 一种时间表达式:

 

 

基本格式 :

 

 

*  *  *  *  *  command

 

 

分 时 日 月 周 命令

 

 

先来看一个例子。每天凌晨1:00执行备份程序:0 1 * * * /root/backup.sh 。其中/root/backup.sh 这是脚本路径,要使用绝对路径,前面的日期格式请直接看下图就知道了。

 

 

crontab还有操作符,用来实现一些复杂的时间设定需要。操作符有:

 

 

1、* 取值范围内的所有数字 ,代表所有。

 

 

2、/ 每过多少个数字 ,代表每隔n长时间。

 

 

3、- 从X到Z ,代表一段时间范围。

 

 

4、,散列数字,代表分割开多个值。

 

 

如果还有搞不懂代码公式的,可以使用这个在线Cron表达式生成器:http://cron.qqe2.com/

 

 

三、20个经典Crontab应用实例

 

 

在使用时记得替换为自己的脚本路径。请在相应的脚本第一行加上#!/bin/bash,否则脚本在定时任务中无法执行。

 

 

实例1:每1分钟执行一次

 

 

* * * * * /root/backup.sh

 

 

实例2:每小时的第3分钟和第15分钟执行一次

 

 

3,15 * * * * /root/backup.sh

 

 

实例3:每天的8点到11点的第3和第15分钟执行一次

 

 

3,15 8-11 * * * /root/backup.sh

 

 

实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次

 

 

3,15 8-11 */2 * * /root/backup.sh

 

 

实例5:每周一上午8点到11点的第3和第15分钟执行一次

 

 

3,15 8-11 * * 1 /root/backup.sh

 

 

实例6:每晚的21:30执行一次

 

 

30 21 * * * /root/backup.sh

 

 

实例7:每月1、10、22日的4 : 45执行一次

 

 

45 4 1,10,22 * * /root/backup.sh

 

 

实例8:每周六、周日的1 : 10执行一次

 

 

10 1 * * 6,0 /root/backup.sh

 

 

实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次

 

 

0,30 18-23 * * * /root/backup.sh

 

 

实例10:每星期六的晚上23: 00 pm执行一次

 

 

0 23 * * 6 /root/backup.sh

 

 

实例11:每一小时执行一次

 

 

* */1 * * * /root/backup.sh

 

 

实例12:每天晚上23点到第二天早上7点之间,每隔一小时执行一次

 

 

* 23-7/1 * * * /root/backup.sh

 

 

实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).

 

 

@weekly /root/backup.sh

 

 

实例14:每个月的15日执行一次.

 

 

0 11 15 * * /root/backup.sh

 

 

实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).

 

 

@monthly /root/backup.sh

 

 

实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).

 

 

0 0 * jan,apr,jun * /root/backup.sh

 

 

实例17: 重启后执行一次.

 

 

@reboot /root/backup.sh

 

 

实例18:定时任务执行后发一封邮件通知.

 

 

MAILTO="raj"

 

 

1 1 * * * /root/backup.sh

 

 

实例19:指定shell (默认的是/bin/bash)

 

 

SHELL=/bin/sh

 

 

1 1 * * * /root/backup.sh

 

 

实例20:指定环境变量.

 

 

PATH=/sbin:/bin:/usr/sbin:/usr/bin

 

 

1 1 * * * /root/backup.sh

 

 

四、Crontab可能存在的问题

 

 

4.1 Crontab不立即生效

 

 

大家新建的Crontab定时任务保存后需要等待2分钟后才会执行,当然如果想要立即执行可以重启Crontab。当crontab失效时,可以尝试/etc/init.d/crond restart解决问题,或者查看日志看某个任务有没有执行/报错tail -f /var/log/cron。

 

 

4.2 Crontab不执行

 

 

脚本中涉及文件路径时写全局路径,更新系统时间时区后需要重启cron。当手动执行脚本OK,但是crontab死活不执行时很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:

 

 

0 * * * * . /etc/profile;/bin/sh /root/backup.sh

 

 

4.3 Crontab无权限执行

 

 

要注意系统级任务调度与用户级任务调度。只有 root 用户和 crontab 文件的所有者可以在 -e 、-l、-r 和 -v 标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。

 

 

root用户的任务调度操作可以通过”crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件。

 

 

想编辑别的用户的 crontab, 使用root运行下面的命令,同一个格式 (追加 “-u username” 到命令后) 也可以用来列出或删除 crontabs。

 

 

crontab -u username -e

 

 

4.4 Crontab执行后通知

 

 

当Crontab定时任务在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,可以在日志中/var/log/cron看到。若是你不希望收到这样的通知,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

标签:教程,实例,root,Crontab,sh,crontab,Linux,执行,backup
From: https://www.cnblogs.com/fireicesion/p/16811797.html

相关文章

  • Linux的三种网络连接方式
    Linux的三种网络连接方式1.桥接模式虚拟系统可以和外部系统通讯,但是容易造成IP冲突2.NAT模式网络地址转换模式,虚拟系统可以和外部通讯,不造成IP冲突3.主机模式独立的......
  • Linux进程的虚拟空间
    进程的虚拟地址Linux每一个运行的程序(进程)操作系统都会为其分配一个0~4G的地址空间(虚拟地址空间)。为了更深入的理解,做一个测试:#include<stdio.h>#include<stdlib.h......
  • Linux中的用户组管理命令
    1、概念每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。用户组的管理涉及用户组的添加、删除和修改。......
  • Linux中的进程和服务
    1、概念计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。2、systemctl(Centos7为例):syst......
  • Linux: GNOME
     Disablescreenlock:Settings->Privary->ScreenLock->   Disablecursorblinking: Method1:Turnon/offBlinkingCursorviaGNOMESettingsS......
  • .NET Core C#系列之XiaoFeng.Redis组件库础操作篇教程
    XiaoFeng.Redis组件库拥有丰富的API和巅峰之作的性能,下面我就先以基础的操作做如下讲解,循序渐进,慢慢提升。欢迎关注xiaofeng组件库,开源不易,多多支持。开源地址:https://git......
  • Linux学习-4
    别名功能1、如何查看别名设置  关键字:alias 别名    aliascp='cp-i'    aliasmv='mv-i'    aliasrm='rm-i'  -i 如要认为交互,有提示信息.......
  • 【linux】 第6回 基础命令
    目录1.别名功能2.文件属性信息3.文件相关命令4.文件权限5.文件所属用户、用户组6.文件大小信息7.⽂件索引属性信息8.链接信息9.系统时间10.企业案例11.流程图1......
  • .NET Core Onvif协议C#教程系列之XiaoFeng.Onvif组件库
        物联网IOT大背景下音视频领域的Onvif协议在2008年成为全球性的开放接口标准。   于是一批开发者涌入该技术领域使用各种编程语言对其改造升级封装。 ......
  • linux ffmpeg简易压缩视频
    有时候录制的视频需要微信或者邮件发送,不需要画质多清晰,只需要在能看清内容的情况下,尽可能小,在windows下有格式工厂可以压缩,在linux下试了几个,都不好用,还是需要ffmepg直接......