cron计划任务

article/2025/9/18 23:15:54

这里写目录标题

  • 总结
  • 一、cron(crond)简介
  • 二、crontab命令
    • 1.命令格式:
    • 2.命令功能:
    • 3.命令参数:
      • 第一种形式(将原先存在的文件加入到corn中)
      • 第二种形式(用命令行的形式加入到corn中)
  • 三、添加调度命令(添加了并非就会运行)
    • 1、/etc/crontab(root用户)
    • 2、crontab -e
  • 四、cron查找配置文件
  • 五、配置文件的正确书写
  • 六、关于时间
  • 七、环境变量以及运行问题
  • 八、cron重启
    • 1.在系统中有service这个命令时:
    • 2.linux发行版本没有service这个命令时:
  • 九、其他问题
    • 1、日志输出
    • 2、系统级任务调度和用户级任务调度
    • 3、其他问题

总结

配置文件位置

  • /etc/crontab
  • /var/spool/cron/用户名 或者/var/spool/cron/crontabs/用户名
  • /etc/cron.d 这里面必须加运行用户,否则不会被执行

一些命令
$ service crond start //启动服务
$ service crond stop //关闭服务
$ service crond restart //重启服务
$ service crond status //查看状态
linux发行版本没有service这个命令时:
/etc/init.d/cron stop
/etc/init.d/cron start

一、cron(crond)简介

安装完操作系统后,系统会默认安装此服务工具,并自动启动crond进程
在linux_ubuntu 系统中进程名叫cron,在大多数系统中进程名叫crond,这点需要注意。
cron(crond)会每分钟定期检查是否有要执行的任务。

在这里插入图片描述
周期任务是有cron这个守护进程来处理,而cron的配置文件称为crontab,是cron table的简写

二、crontab命令

1.命令格式:

包含两个命令

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

2.命令功能:

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

3.命令参数:

第一种形式(将原先存在的文件加入到corn中)

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般由root用户来运行。

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
在这里插入图片描述

第二种形式(用命令行的形式加入到corn中)

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
在这里插入图片描述
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。 (下面是删除后的反应)

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
在这里插入图片描述
-i:在删除用户的crontab文件时给确认提示。-r,-l的时候也行,不过没有意义
在这里插入图片描述

三、添加调度命令(添加了并非就会运行)

注意,下面两种方式并非是crontab运行,而是cron(crond)来运行的,crontab只是一个被编辑的表

1、/etc/crontab(root用户)

/etc/crontab这种方法只有root用户能够使用,能够直接给其他用户设置计划任务,更加针对的是系统任务。
在这里插入图片描述

2、crontab -e

使用这个命令后会打开一个文件让你去编辑,编辑完成后,会在/var/spool/corn/下面生成一个当前用户的文件,比如/var/spool/cron/root文件(一般都会这样)
在这里插入图片描述
但是在linux_ubuntu下会在/var/spool/corn/crontabs/下生成用户姓名的文件,比如/var/spool/corn/crontabs/root
在这里插入图片描述

四、cron查找配置文件

  • /etc/crontab
  • /var/spool/cron/用户名 或者/var/spool/cron/crontabs/用户名
  • /etc/cron.d 这里面必须加运行用户,否则不会被执行

1、/etc/crontab一般被认为是系统的配置文件,当然可以做其他的
2、一般来说/var/spool/cron/用户名 这里每个用户最多只有一个文件 这个方式是每个用户的配置文件
3、/etc/cron.d cron在执行的时候,会扫描这里面的所有文件的内容,想要添加任务可以直接新建一个文件,然后放到这个文件夹里面,这里一般在时间后面加上指定的用户名,当然可以不加

五、配置文件的正确书写

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root
HOME=/

这四行是用来配置crond任务运行的环境变量,

  • 第一行SHELL变量指定了系统要使用哪个shell,这里是bash
  • 第二行PATH变量指定了系统执行命令的路径,
  • 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的 值为空,则表示不发送任务执行信息给用户,
  • 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

已经内置了三个文件夹,里面的文件会每周每月每日执行,
在这里插入图片描述

六、关于时间

在这里插入图片描述
有几个特殊符号

  • / 表示时间间隔,也就是会跳过这个时间,比如在分钟里面,0-30/2 表示前0-30分钟之内每2分钟执行一次,也可以和*结合, */2表示没两分钟执行一次
  • 逗号, 表示特定的值,比如在分钟里面1,2,3 表示每小时的1,2,3执行
  • -连字符表示值的范围,在分钟里面1-30表示1到30分钟

七、环境变量以及运行问题

如果创建了一个crontab但是任务无法执行,但是手动执行命令没有问题,这种情况一般就是没有在文件中配置环境造成的。
手动执行任务是在当前shell环境中进行的,因此能够找到环境变量,但是在系统自动执行的时候,是不会加载任何环境变量的,因此需要在文件中指定所需要的所有环境变量。

在shell脚本中
1、设计文件路径时要写全局路径
2、如果要运行其他环境变量时,通过source命令引入环境变量

比如在这里插入图片描述
如果手动执行可以但是crontab就是不执行,那就是环境变量出的问题,直接在crontab中引入环境变量解决问题,即在定时器任务上方加上环境变量,如果还涉及到其他的,从后面添上

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

八、cron重启

有的没有crond,那么就输入cron

1.在系统中有service这个命令时:

这个命令在red hat当中常用,有的linux发行版本中没有这个命令。
$ service crond start //启动服务
$ service crond stop //关闭服务
$ service crond restart //重启服务
$ service crond status //查看状态

2.linux发行版本没有service这个命令时:

/etc/init.d/cron stop
/etc/init.d/cron start

九、其他问题

1、日志输出

每次任务输出都发给当前系统用户的话,长期积累日志信息会异常的庞大,因此可以忽略日志输出

 * * * * * /root/JIF/upJob.sh > /dev/null 2>&1

2、系统级任务调度和用户级任务调度

如果要定义一个定时重启系统的任务就必须把任务放到/etc/crontab文件中,即使在root用户下建立一个定时重启任务也是无效的

3、其他问题

  • 新创建的cron job,不会马上执行,至少要过2分钟才执行,或者重启cron会立即执行
  • %是有特殊含义的,表示换行,如果要用到%必须要%转义
  • 可以在时间后加上用户,也可以不指定,/etc/cron.deny是不允许用户使用crontab命令,/etc/cron.allow是允许所列用户使用crontab命令

http://chatgpt.dhexx.cn/article/r7JaOYpX.shtml

相关文章

Cron表达式

Cron表达式语法 一、结构 corn从左到右(用空格隔开):秒 分 小时 日 月 星期 年 二、各字段的含义 (1)*:表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件。 (2&#x…

C语言结构体内存对齐

结构体内存对齐 如何计算结构体的大小? 首先得掌握结构体的对齐规则: 1.第一个成员在与结构体变量偏移量为0的地址处。(将第一个成员放在结构体内存的第0处) 2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。(从0地…

C语言结构体对齐详解

文章目录 一、C语言结构体对齐大小快速判断二、反汇编角度看结构体三、总结 一、C语言结构体对齐大小快速判断 在C语言中定义一个结构体&#xff0c;里面具体占用多少个字节呢&#xff0c;先举一个例子&#xff0c;如下&#xff1a; #include<stdio.h> #pragma pack(8)…

C语言结构体传参

目录 C语言结构体传参1. 普通传参1.1 测试代码1.2 测试结果1.3 结果分析 2. 单指针传参2.1 修改结构体数据2.1.1 测试代码2.1.2 测试结果2.1.3 结果分析 2.2 修改结构体地址2.2.1 测试代码2.2.2 测试结果2.2.3 结果分析 3. 双指针传参3.1 测试代码3.2 测试结果3.2 结果分析 C语…

C语言 结构体

1什么是结构体 结构体是一种集合&#xff0c;它里面包含了多个变量或数组&#xff0c;它们的类型可以相同&#xff0c;也可以不同&#xff0c;每个这样的变量或数组都称为结构体的成员。结构的成员可以是标量、数组、指针&#xff0c;甚至是其他结构体。 2结构体的定义 (1&a…

c语言:结构体(详解)

初识结构体 一.结构体声明1.结构体的概念2.声明 二.结构体的基础使用三.结构体变量的定义和初始化四.空结构体五.柔性数组1.定义2.使用 六.结构体内存对齐七.位端 一.结构体声明 1.结构体的概念 结构体是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同…

C语言结构体详解

目录 一、结构体的基本概念 举个例子 二、结构体变量 三、结构体占用的内存情况 举个例子 运行效果 再次运行 四、结构体的变量名 五、结构体初始化 五、结构体初始化 举个例子 运行效果 六、结构体成员的访问 举个例子 运行效果 八、结构体指针 举个例子 运行效…

C语言结构体超详解(小白一看就懂,多维度分析!!!!)

目录 一、前言 二、结构体详解 &#x1f350;什么是结构体 &#x1f34e;结构体的定义与基础结构 &#x1f351;结构体的使用 &#x1f4a6;结构体的初始化 &#x1f4a6;结构体的成员访问 &#x1f4a6;结构体数组 &#x1f4a6;结构体指针--------------指向结构体变…

C语言之结构体(进阶篇)

目录 1.结构体的内存对齐​ 如何计算呢&#xff1f;​ 掌握结构体的对齐规则&#xff1a; 为什么存在内存对齐呢&#xff1f;​ ​​​​​​​offsetof​ 位段​ 什么是位段&#xff1f;​ 比如&#xff1a; 位段的内存分配​ 举个例子 位段的跨平台问题&#xff1a;​ 枚举…

C语言——结构体(全)

目录 一、结构体的设计 二、结构体变量的初始化 2.1结构体在内存表示&#xff1b; 2.2结构体初始化&#xff1b; 2.3结构体指针变量 2.4结构体嵌套结构体 三、结构体成员访问 3.1、结构体成员访问 3.2、结构体变量和指针 ​3.3、结构体和函数 四、结构体与数组 五、…

Github客户端下载慢的解决方法

Github客户端下载慢的解决方法 Github客户端下载解决方法获取下载连接 Github客户端下载 Github客户端的下载地址是——Github客户端下载。 但是下载速度特别慢&#xff0c;最快也就十几K。 解决方法 使用迅雷下载&#xff1a;将Github客户端的下载地址复制到迅雷中&#…

windows平台下使用Github(2 创建代码仓库,安装Github客户端.)

本文会分章节的来介绍如何在windows平台下使用GitHub 一、注册Github账号 查看 二、创建代码仓库&#xff0c;安装Github客户端.查看 三、Github上传和下载(1 客户端方式)查看 四、Github上传和下载(2 命令行方式)查看 1、创建一个代码托管仓库。 点击右上角的 号或者点…

github客户端进行token认证

从 2021 年 8 月 13 日起&#xff0c;GitHub 在对 Git 操作进行身份验证时不再接受帐户密码。您需要添加 PAT&#xff08;个人访问令牌&#xff09;&#xff0c;您可以按照以下方法在您的系统上添加 PAT。 git - Support for password authentication was removed. Please us…

【解决】GitHub 客户端下载后安装在哪里?

GitHub Desktop 配置环境变量GitHub 安装路径GitHub Shell、Bash 环境是 Windows 10。 从 GitHub 官网下载了 GitHub 的 Desktop 版本之后&#xff0c;它其实不仅是一个 GUI&#xff0c;还带了 Shell&#xff08;Bash&#xff09;&#xff0c;但是发现找不到它们是被安装在哪个…

GitHub客户端上传本地代码

创建GitHub账号、安装GitHub客户端登录GitHub网站、在客户端登录账户创建新的代码存放处 填写及勾选一些信息 复制此代码存放处的路径 利用客户端上传代码 第一步&#xff1a;点击第五步的Open in Desktop&#xff0c;打开本地客户端 第二步&#xff1a;点击下图蓝色选中选…

你们心心念念的 GitHub 客户端终于来了!

点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 For something,we cant understand when we are young but by the time we understand,we are no longer young. 有些事情&#xff0c;当我们年轻的时候无法懂得&#x…

GitHub客户端的使用方法

一&#xff1a;创建自己的GitHub账号 GitHub官网链接 https://github.com/ 自行创建账号&#xff0c;因本文主要介绍GitHub客户端的使用方法&#xff0c;所以注册账号略 二&#xff1a;下载GitHub客户端 GitHub客户端下载的官网链接 https://desktop.github.com/ 下载完成之…

gitHub客户端的安装与使用总结

一、第一步 注册github账号 1.注册界面 https://github.com/&#xff0c;如下图&#xff1a; 2.下注册流程 3.上面简单的输入一下用户名、邮箱地址、密码点击创建即可&#xff0c;进入下一步&#xff0c;如下图&#xff1a; 如果勾选了“Help me set up an organization next”…

Github客户端安装使用教程(一)

转载请注明出处&#xff0c;http://blog.csdn.net/bule_zst/article/details/74185268 1. 下载安装 下载地址 下载好后双击运行&#xff0c;这个安装程序比较奇葩&#xff0c;是强制安装路径的&#xff0c;运行后什么界面都没有&#xff0c;后台安装&#xff0c;大概等到你觉…

GitHub Windows 客户端使用教程

GitHub Desktop tutorial 一、前期准备 下载安装 GitHub Windows 客户端&#xff0c;链接在这里。 二、登录账号 在客户端登录自己的 GitHub 账号。 三、选择要上传的 repository 进行 Clone 比如我 Clone 了 LeetCode-Solutions。 然后选择 URL 进行 Clone 。 进入主界面…