实用工具 | Linux 定时任务 crontab 命令详解

crontab报错/var/spool/cron : Permission denied和 -bash: chattr: command not found ,表示任务添加成功,且之后三分钟不会执行对应的任务,所以在调试定时器的时候,要把这三分钟考虑进去,如果执行的时间在三分钟内的话,对应的任务则不会生效。原因(使用crontab -e编写需要等3分钟出现效果)如果是这种情况,就不属于本文说的如下问题。目录下用vim编辑一个测试文件,看是否可以保存在这个cron目录下,如果无法保存提示权限问题。服务器搭建了宝塔面板,这种情况得去宝塔界面设置定时任务,因为权限都在宝塔哪里。下查看cron目录是正常的,但是在cron里面没有权限建立文件这个根源。 阅读详情

本文首发于 2016-11-23 10:24:45

概述

Linux 下的任务调度分为两类:系统任务调度和用户任务调度。Linux 系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用 crontab 命令。

cron 配置文件

在 Ubuntu/Debian 中,配置文件路径为 /etc/crontab(CentOS也类似),其内容为:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

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

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
  • SHELL 环境变量用于指定系统要使用的shell,此处为/bin/sh。
  • PATH 环境变量指定了系统执行命令的路径。
  • 也可以添加MAILTO变量,如果指定,则表示 crond 的任务执行信息将通过电子邮件发送给指定的用户。
  • 其他部分在后文详细讲述。

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等,都可以使用 crontab 工具来定制自己的计划任务。所有非root用户定义的 crontab 文件都被保存在 /var/spool/cron 目录中,其文件名与用户名一致。

ls /var/spool/cron/crontabs/admin

除此之外,还有两个文件/etc/cron.deny和/etc/cron.allow,前者中可列出不允许哪些用户使用 crontab 命令,后者中可列出允许哪些用户使用 crontab 命令。

crontab 文件含义

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command

各字段含义如下:

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

在以上各个字段中,还可以使用以下特殊字符:

  • 星号(*):代表所有可能的值,例如 month 字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
  • 逗号(,):可以用逗号隔开的值指定一个列表范围,例如:1,2,5,7,8,9 。
  • 中杠(-):可以用整数之间的中杠表示一个整数范围,例如:2-6 表示2,3,4,5,6 。
  • 正斜线(/):可以用正斜线指定时间的间隔频率,例如:0-23/2表示每两小时执行一次。同时正斜线可以和星号一起使用,例如:*/10,如果用在minute字段,表示每十分钟执行一次。

crontab命令详解

命令格式:

usage:	crontab [-u user] file
	crontab [ -u user ] [ -i ] { -e | -l | -r }
		(default operation is replace, per 1003.2)
	-e	(edit user's crontab)
	-l	(list user's crontab)
	-r	(delete user's crontab)
	-i	(prompt before deleting user's crontab)
  • -u user:用于设定某个用户的crontab服务。
  • file: file 为命令文件名,表示将 file 作为 crontab 的任务列表文件并载入 crontab ;如果在命令行中没有指定这个文件,crontab 命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab 。
  • -e:编辑某个用户的 crontab 文件内容,如不指定用户则表示当前用户。
  • -l:显示某个用户的 crontab 文件内容,如不指定用户则表示当前用户。
  • -r:从 /var/spool/cron 目录中删除某个用户的crontab文件,如不指定用户,则默认删除当前用户 crontab 文件。
  • -i:在删除用户的 crontab 文件时给确认提示。

crontab 注意事项

  1. crontab有2种编辑方式:直接编辑/etc/crontab文件与crontab –e,其中/etc/crontab里的计划任务是系统的计划任务,而用户的计划任务需要通过crontab –e来编辑。
  2. 每次编辑完某个用户的 cron 设置后,cron 自动在 /var/spool/cron 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用 crontab -e 来编辑。
  3. crontab 中的 command 尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
  4. 新创建的 cron job 不会马上执行,至少要等2分钟才能执行,可重启 cron 来立即执行。
  5. % 在crontab文件中表示换行,因此假如脚本或命令含有%,需要使用\%来进行转义。
  6. crontab -e的默认编辑器是 nano ,如需使用 vim,可在/etc/profile或~/.bashrc中添加 export EDITOR=vi 来解决。

crontab 配置示例

  • 每分钟执行1次 command(因cron默认每1分钟扫描一次,因此全为*即可):
* * * * * command
  • 每小时的第3和第15分钟执行 command :
3,15 * * * * command
  • 每天上午8-11点的第3和15分钟执行 command :
3,15 8-11 * * * command
  • 每隔2天的上午8-11点的第3和15分钟执行 command :
3,15 8-11 */2 * * command
  • 每个星期一的上午8点到11点的第3和第15分钟执行 command :
3,15 8-11 * * 1 command
  • 每晚的21:30分重启 smb :
30 21 * * * /etc/init.d/smb restart
  • 每月1、10、22日的 4:45 重启 smb :
45 4 1,10,22 * * /etc/init.d/smb restart
  • 每周六、周日的 1:10 重启 smb :
10 1 * * 6,0 /etc/init.d/smb restart
  • 每天 18:00 至 23:00 之间每隔30分钟重启 smb :
0,30 18-23 * * * /etc/init.d/smb restart
  • 每隔1小时重启 smb :
* */1 * * * /etc/init.d/smb restart
  • 晚上23点到早上7点之间,每隔1小时重启 smb :
* 23-7/1 * * * /etc/init.d/smb restart
  • 每月的4号与每周一到周三的11点重启 smb :
0 11 4 * mon-wed /etc/init.d/smb restart
  • 每小时执行/etc/cron.hourly目录内的脚本:
0 1 * * * root run-parts /etc/cron.hourly

欢迎关注我的微信公众号【数据库内核】:分享主流开源数据库和存储引擎相关技术。

标题网址
GitHubhttps://dbkernel.github.io
知乎https://www.zhihu.com/people/…
思否(SegmentFault)https://segmentfault.com/u/db…
掘金https://juejin.im/user/5e9d3e…
开源中国(oschina)https://my.oschina.net/dbkernel
博客园(cnblogs)https://www.cnblogs.com/dbkernel
VMware ESXi主机利用cron设置计划任务 在ESXi主机中,并不支持直接使用cron命令配置计划任务,但是我们可以直接编辑cron文件,该文件在ESXi中的路径是:/var/spool/cron/crontabs/root。 1、首先通过命令vi /var/spool/cron/crontabs/root编辑cron文件,在文件中添加计划任务(注意:该文件为只读,需要使用:wq!进行强制保存退出)。例如: */1 * * *... 阅读详情

相关推荐

自动驾驶开发者必看:nuscenes数据集23类物体标注全解析(附避坑指南)

本文深入解析nuscenes数据集的23类物体标注系统,为自动驾驶开发者提供全面的标注规范解读和实战避坑指南。涵盖多模态数据组织、类别细分规则、属性系统应用技巧以及标注质量验证方法,帮助开发者高效利用这一标杆数据集提升模型性能。

weixin_29041767的博客 258

linux中/etc/crontab与/var/spool/cron/crontabs/的区别

包含的是每个用户的个人定时任务。两者都服务于定时任务的管理,但一个是全局性的,另一个是用户特定的。定义的是系统级别的定时任务,由所有用户共享,而。

wyx的博客 1175

LTE/NR中的相应cause场景【原创】

目录1.背景2.LTE EMM cause2.0 写在最前2.1 特殊处理的cause第一梯队第二梯队2.2 非特殊处理的cause3.NR cause 实网分析终端被拒等问题,经常遇到各类cause,其会对应不同的终端限制行为。查找已有资料后理解没有很深,自行总结本文用于梳理现象,如有错误敬请指正,转载请注明出处。 本文用于记录协议Ts 24.301及Ts 24.501中的cause及其对应行为。 已总结的cause值: 24.301中的cause分

2301_79567300的博客 3500

linux计划任务踩坑

文章目录1.前言2.前置知识3.测试3.1 使用crontab来设置计划任务3.2 直接编辑文件设置计划任务4.总结5.参考文章 1.前言 在linux渗透测试的时候,有时会选择使用计划任务crontab来进行权限维持或者反弹shell,在自己做测试的时候遇见了几个特殊的点做一下记录。 2.前置知识 各个用户的计划任务文件存在/var/spool/cron/crontabs/中,以用户名来命名。 系统级别的计划任务文件存在/etc/crontab,无论什么用户登陆,都会执行这个文件中的计划任务。 cront

Shanfenglan's blog 8079

Xilinx PCIe IP核示例工程仿真流程与关键任务解析

本文详细解析了Xilinx PCIe IP核示例工程的仿真流程与关键任务。通过搭建仿真环境、解读初始化日志,并深入剖析TSK_TX_MEMORY_WRITE_32等核心任务的TLP报文生成与交互过程,帮助开发者掌握PCIe IP核的仿真调试方法,为实际硬件设计提供可靠的验证基础。

weixin_28314575的博客 509

基于STM32的可穿戴式多生理参数实时监测与预警系统

针对传统可穿戴健康设备存在的生理参数监测种类单一、数据处理依赖云端导致响应滞后、续航能力弱等问题,设计一种基于STM32的可穿戴式多生理参数实时监测与预警系统。系统以STM32L476RG低功耗微控制器为核心,集成心率血氧传感器、体温传感器、血压传感器,实现人体心率、血氧饱和度、体温、收缩压/舒张压的同步采集;通过边缘端轻量化数据处理算法完成参数异常判定,结合低功耗硬件设计与软件休眠策略,在保证监测精度的同时延长续航。测试结果表明,系统心率监测误差≤2次/分钟,血氧饱和度误差≤2%,体温误差≤±0.2℃,血

m0_74026776的博客 2041

linux_ cron/crontab计划任务

五.cron/crontab计划任务(重点) 作用:操作系统不可能24小时值守,有些时候想在特定的时间点执行特定的任务(例如每天两天重启电脑,此时可以交给计划任务程序去执行操作) 语法:#crontab 选项        常用选项:            -l:list,列出指定用户的计划任务列表            -e:edit,编辑指定用户的计划任务列表           ...

jss19940414的博客 639

计算机等级考试(二级WPS)---真题14套

目录 真题14一、选择题二、WPS文字三、WPS表格四、WPS演示21.打开考生文件夹下的素材文档 “WPS.docx”(.docx 为文件扩展名),后续操作均基于此文件,否则不得分。小周正在整理一份关于极光的文档,请按要求帮助她完成文档的排版工作。1.将全文中的手动换行符全部替换为中文句号并回车,删除文中的空行和空格。2.将正文第 2 段(“在我國的古書…… 極光”)中的繁体字转换成简体字,并为其设置 “正文” 样式。3.对文档样式进行如下设置:4.为 “1.3 极光的形态” 一节中列出的五种极光形态特征

2401_82750246的博客 1182

Linux中Crontab(定时任务)命令详解及使用教程

Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分

qq_51514930的博客 11万+

Yocto系列讲解[入门篇] 1 - 快速入门熟悉Yocto的构建

yocto quick start up带大家快速上手

fulinux的博客 5万+

YOLOv11改进 - 卷积Conv | PConv(Pinwheel-shaped Conv): 风车状卷积用于红外小目标检测 | AAAI 2025

本文介绍了风车状卷积(PConv)和基于尺度的动态(SD)损失在YOLOv11中的结合应用。PConv采用不对称填充,通过特殊结构设计、卷积运算和分组卷积技术,能更好地适应红外小目标的像素高斯空间分布,在少量增加参数的情况下极大扩展感受野。SD损失可根据目标大小动态调整尺度和位置损失的影响。我们将PConv集成到YOLOv11的主干网络低层,并在相关配置文件中进行设置。实验证明,YOLOv11 - PConv在IRSTD - 1K和SIRST - UAVB数据集上取得显著性能提升,验证了方法的有效性和泛化能

魔改工程师的博客 1336

【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

Crontab 是一个在 Unix 和 Linux 操作系统上用于定时执行任务的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是cron table的缩写,cron指的是 Unix 系统中的一个后台进程,它用于执行预定的任务。Crontab 文件包含一系列计划任务条目,每个条目都定义了一个任务的执行时间和要运行的命令或脚本。这些任务可以按照分钟、小时、日、月和星期等不同的时间单位进行安排。环境变量问题,例如crontab不能识别Java的环境变量。

我在山城重庆,我希望能为这片软件沙漠地带贡献自己的一滴水,Stay tuned! 1万+

【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现

首先,我们复习下课程传统的PID控制器,往往存在调整速度较慢,超调过大等缺点。为了解决这个问题,在实际的PID应用中,需要实时的调整PID的控制参数,以达到加快PID控制速度,降低超调等目标。目前,自适应PID控制器,一般有误差反馈调整,模糊控制器调整,神经网络调整。其中模糊控制器调整,神经网络调整较为复杂,在入门案例中不做介绍,在本课程中,我们将实现相对略微简单点的基于误差反馈调整的自适应PID控制器。

FPGA/MATLAB学习教程/源码/项目合作开发 6205

Linux中Crontab(定时任务)命令详解

crontab是Linux系统中一个强大的定时任务工具,通过简单的配置,我们可以自动化许多日常任务。本文介绍了crontab的基本使用、配置方法以及一些实用的示例,希望能够帮助读者更好地理解和使用crontab。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章Linux系统使用超详细(七)~定时任务:crontabLinux中Crontab(定时任务)命令详解及使用教程-腾讯云开发者社区-腾讯云。

ning的博客 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux定时任务crontab命令详解,看这一篇就够了

linux定时任务crontab命令详解,看这一篇就够了 本篇文章思维导图 一、概述 1.1 crontab命令简介 有时候我们需要在linux系统中定时执行一些命令,比如说定时执行监控脚本来检测某个服务是否正常,不正常的话就把服务拉起,这个时候就会用到crontab命令了。 crontab命令,一般在Linux系统中用来设置被周期性执行的任务,将任务存放于crontab文件中。crontab命令依赖crond服务,只有安装了crond服务,crontab命令才能使用,一般在安装操作系统时,crond服务会

任培培的博客 9413

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

crontab定时任务命令详解

crontab定时任务命令详解

囚徒之困 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Linux定时任务Crontab命令详解

参考链接:https://www.cnblogs.com/shamo89/p/10160946.html 一、crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则......

大宇进阶之路的博客 1万+

Linux 定时任务 crontab 详解

思维脑图Crontab 是一个在 Unix 和 Linux 操作系统上用于定时执行任务的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写,cron指的是 Unix 系统中的一个后台进程,它用于执行预定的任务。Crontab 文件包含一系列计划任务条目,每个条目都定义了一个任务的执行时间和要运行的命令或脚本。这些任务可以按照分钟、小时、日、月和星期等不同的时间单位进行安排。

老猫喜欢今日爬山的博客 3969

【linux】crontab 命令详解,linux定时任务

linux定时任务,crontab命令

唐古的博客 1658

Linux中Crontab命令详解

Crontab 是 Linux 中用于设置和管理定时任务的工具,能够自动化执行重复性任务,如备份、状态检查等。每个用户都有自己的 crontab 文件,系统级别的任务则存放在 /etc/crontab 或 /etc/cron.d/ 目录下。crontab 文件的基本结构包括时间字段(分钟、小时、日期、月份、星期)和要执行的命令。特殊字符如 *、,、-、/ 提供了更灵活的时间设置。常用命令包括 crontab -e(编辑)、crontab -l(列出)、crontab -r(删除)。使用 crontab 时需

weixin_54939228的博客 1947

Linux crontab命令详解

crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟 日志文件: ll /var/log/cron* 编辑文件: vim /etc/crontab 进程:ps -ef | grep crond ==> /etc/init.d/crond restart 作用:定时备份,实时备份 1.常见命令参数 usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

qq_38766930的博客 2636

linux crontab命令(linux定时任务)

linux定时任务(linux crontab命令)

Sunny Boy001的博客 1374

crontab每天8点_Linux中利用Crontab做定时任务详解

原创 程序员日常笔记 2019-05-01 19:47:12Linux中利用Crontab做定时任务详解关于crontab的安装请参考:Linux中Crontab(定时任务)安装及配置详解。(1) cron(crond)介绍:crond是linux下用来周期性执行某种任务或等待处理某些事件的一个守护进程,crond进程启动后,会每分钟定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务...

weixin_32214771的博客 4397

linux 定时任务crontab用法详解

linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。cron系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny和cron.allow这两个文件来禁止或允许。...

杜海的博客 5207
上一篇: 特性分析 | GreenPlum 的并行查询优化策略详解
下一篇: 引擎特性 | MySQL MEMORY(HEAP) 存储引擎导致 Slave 节点有本地事务
dbkernel
博客等级 码龄4年 60粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值