首页 > 系统相关 >Linux-定期执行程序_crond与crontab

Linux-定期执行程序_crond与crontab

时间:2023-04-15 23:22:34浏览次数:45  
标签:script Linux crontab sh scripts 执行 crond

1 、Crond简介:

  (1)概念:

    Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件。

  (2)命令:

    status   //查看此服务的运行状态
    stop     //停止此服务
    restart  //重启此服务
    reload   //重新载入配置

    /sbin/service crond start    #启动服务
    /sbin/service crond stop     #关闭服务
    /sbin/service crond restart  #重启服务
    /sbin/service crond reload   #重新载入配置

2、crontab简介:

  (1)概念:

    crontab是一个命令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。而crond正是它的守护进程。

  (2)命令:

  crontab -u   # 设定用户的cron服务 
  crontab -e   # 修改 crontab 文件. 如果文件不存在会自动创建(或者通过修改/etc/crontab文件)
  crontab -l   # 查看用户的 crontab 文件
  crontab -r   # 删除用户的crontab 文件 
  crontab -ir  # 删除 crontab 文件前提醒用户。
  crontab -h   # 查看一些参数信息

  (3)参数信息:

    间间隔的单位可以是分钟,小时,日,月,周及以上的任意组合(注意:日和周不要组合)。

  拓展:

/etc/cron.deny(拒绝) 该文件中所列用户不允许使用crontab
/etc/cron.allow(允许) 该文件优先级高于cron.deny(默认不存在,一般不用)
/var/spool/cron/ 所有用户crontab配置文件默认都存在此目录,文件名以用户名命名

  a)cmd为要执行的命令或脚本,例如:/bin/sh /server/scripts/chensiqi.sh

  b)每个列之间必须要有一个空格

  时间记忆口诀:分时日月周

  crontab 语法格式中特殊符号含义如下表

特殊符号 含义
* 代表取值范围内的数字
/ ① 代表”每”例如:每10分钟执行一次;② 任务可以写成*/10 * * * * cmd,

-

① 代表分隔符,表示一个时间范围;② 例如:每天的17,18,19点的00分执行任务。00 17-19 * * * cmd
① 表示分隔时段的意思;② 例如每天的5点10点00分执行任务,00 5,10 * * * cmd

3、crond的概念和crontab是不可分割的

  例如:每五分钟做一次服务器时间同步。要执行crontab这个命令,也需要启动一个服务crond才行。

4、安装crond

  apt-get install cron

5、添加sheel脚本

  (1)首先创建一个执行程序:vim a.sh

  (2)编辑: #!/bin/bash

       python3  python.py >> test2.log 2>&1

  (3)添加权限:chmod +x ./a.sh

  (4)查看执行结果:./a.sh

6、例子:14个超实用的Crontab使用实例

  (1)每天 02:00 执行任务

  0 2 * * * /bin/sh backup.sh

  (2)每天 5:00和17:00执行任务

  0 5,17 * * * /scripts/script.sh

  (3)每分钟执行一次任务

  * * * * * /scripts/script.sh

  (4)每周日 17:00 执行任务

  0 17 * * sun /scripts/script.sh

  (5)每 10min 执行一次任务

  */10 * * * * /scripts/monitor.sh

  (6)在特定的某几个月执行任务

  * * * jan,may,aug * /script/script.sh

  (7)在特定的某几天执行任务

  0 17 * * sun,fri /script/scripy.sh #在每周五、周日的17点执行任务

  (8)在某个月的第一个周日执行任务

  0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh

  (9)每四个小时执行一个任务

  0 */4 * * * /scripts/script.sh

  (10)每周一、周日执行任务

  0 4,17 * * sun,mon /scripts/script.sh

  (11)每个30秒执行一次任务

    我们没有办法直接通过上诉类似的例子去执行,因为最小的是1min。但是我们可以通过如下的方法。

    * * * * * /scripts/script.sh 

    * * * * * sleep 30; /scripts/script.sh

  (12)多个任务在一条命令中配置

  * * * * * /scripts/script.sh; /scripts/scrit2.sh

  (13)每年执行一次任务

  @yearly /scripts/script.sh

    注:@yearly 类似于“0 0 1 1 *”。它会在每年的第一分钟内执行,通常我们可以用这个发送新年的问候。

  (14)系统重启时执行

  @reboot /scripts/script.sh

标签:script,Linux,crontab,sh,scripts,执行,crond
From: https://www.cnblogs.com/qq2806933146xiaobai/p/17322248.html

相关文章

  • 周立功arm linux教程,极速搭建周立功IMX287A ARM Linux开发环境
    原文:https://blog.csdn.net/weixin_35399228/article/details/116750301刚买了一套开发板,准备以后调试项目用,并且熟悉飞思卡尔这个平台。众所周知,周立功提供的资料是非常详细的,但难免存在疏漏的地方,在此,记录我玩这套IMX287A开发板的流程,由于有经验,所以搭建起来非常快,基本上半个......
  • 如何在Linux中加入cron任务
    从命令行中添加cron任务要添加cron任务,你可以使用称为crontab的命令行工具。输入下面的命令会创建一个以当前用户运行的新cron任务。1.$crontab-e如果你想要以其他用户运行cron任务,输入下面的命令。1.$sudocrontab-u-e你将会看见一个文本编辑窗口,这里你可以添加或者编辑cron......
  • Linux-使用puTTy远程Linux
      下载地址:putty-64bit-0.74-installer(访问码:wpk9)1、安装  在客户端的实体机上安装,Next按完就好。2、连接linux1)输入linux的ip+22端口(SSH),设置保存的名字,点击Save保存,点击Open打开。2)打开后页面3)输入用户名root1,密码root登录即可 补充:  使用root用户登录Ub......
  • linux中sed命令删除首次匹配字符及其之前的内容或者指定匹配字符及其之前的内容
     001、root@DESKTOP-IDT9S0E:/home/test/test/test#lsa.txtroot@DESKTOP-IDT9S0E:/home/test/test/test#cata.txt##测试数据awQQrQQ24QQ34QQr5sfewQQ3dsQQkkQQsaeQQ88QQjjQQdsfroot@DESKTOP-IDT9S0E:/home/test/test/test#sed's/QQ/tag/'a.txt|se......
  • linux安装软件
    ......
  • linux中截取字符串中指定字符之前的内容
     001、root@DESKTOP-IDT9S0E:/home/test/test/test#str1="Homo_sapiens.GRCh38.99.chgffromosome.22.gff3"root@DESKTOP-IDT9S0E:/home/test/test/test#str2=${str1%.*}##截取最后一个.之前的内容root@DESKTOP-IDT9S0E:/home/test/test/test#echo$str2Homo_sapiens......
  • linux中dirname 和 basename命令
     001、dirname用于从绝对路径中剥离出路径002、basename用于从绝对路径中剥离出文件名 测试:root@DESKTOP-IDT9S0E:~#lsroot@DESKTOP-IDT9S0E:~#dirname/home/test2/a.sh##dirname剥离出路径/home/test2root@DESKTOP-IDT9S0E:~#basename/home/test2/a.sh##b......
  • 前端&后端程序员必备的Linux基础知识
    一从认识操作系统开始1.1操作系统简介我通过以下四点介绍什么操作系统:操作系统(OperationSystem,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;操作系统本质上是运行在计算机上的软件程序;为用户提供一个与系统交互的操作界面;操作系统分内核与外壳(我......
  • Linux内核IO基础知识与概念
    什么是IO在计算机操作系统中,所谓的I/O就是输入(Input)和输出(Output),也可以理解为读(Read)和写(Write),针对不同的对象,I/O模式可以划分为磁盘IO模型和网络IO模型。IO操作会涉及到用户空间和内核空间的转换,先来理解以下规则:内存空间分为用户空间和内核空间,也称为用户缓冲区和内核缓冲......
  • Linux内核Socket通信原理和实例讲解
    关于对Socket的认识,大致分为下面几个主题,Socket是什么,Socket是如何创建的,Socket是如何连接并收发数据的,Socket套接字的删除等。Socket是什么以及创建过程一个数据包经由应用程序产生,进入到协议栈中进行各种报文头的包装,然后操作系统调用网卡驱动程序指挥硬件,把数据发送到......