Linux crontab-自动化的任务

【Linux命令大全】crontab命令详解:自动化任务调度权威指南 凌晨3点的关键备份任务每分钟一次的服务健康检查复杂的任务依赖关系跨时区的调度协调故障任务的自动恢复💡惊人事实:Google每秒钟执行超过2000万个cron任务,支撑着整个搜索索引的更新! 阅读详情

在 Linux 中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的数量时自动运行。红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新。譬如,被 locate 命令使用的 slocate 数据库每日都被更新。系统管理员可使用自动化的任务来执行定期备份、监控系统、运行定制脚本等等。

红帽企业 Linux 随带几个自动化任务的工具:cron、at、和 batch。

37.1. cron

cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。

要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。

37.1.1. 配置 cron 任务

cron 的主配置文件是 /etc/crontab,它包括下面几行:

SHELL=/bin/bash
            PATH=/sbin:/bin:/usr/sbin:/usr/bin
            MAILTO=root
            HOME=/
            # run-parts
            01 * * * * root run-parts /etc/cron.hourly
            02 4 * * * root run-parts /etc/cron.daily
            22 4 * * 0 root run-parts /etc/cron.weekly
            42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:

minute   hour   day   month   dayofweek   command

 

  • minute — 分钟,从 0 到 59 之间的任何整数

  • hour — 小时,从 0 到 23 之间的任何整数

  • day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

  • month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

  • dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

  • command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。

如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。

# record the memory usage of the system every monday
            # at 3:30AM in the file /tmp/meminfo
            30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
            # run custom script the first day of every month at 4:10AM
            10 4 1 * * /root/scripts/backup.sh

例 37-1. crontab 的例子

根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。

cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

37.1.2. 控制对 cron 的使用

/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。

无论使用控制文件中的规定如何,根用户都总是可以使用 cron。

如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。

如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

37.1.3. 启动和停止服务

要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用 /sbin/service crond stop 命令。推荐你在引导时启动该服务。

 

ZT:http://www.eygle.com/digest/2006/01/hwoto_linux_crontab.html


Linux CronTab 定时任务,轻松实现自动化运维 这种需求通常可以通过手动执行命令来完成,但是随着业务的增加和数据量的增长,手动执行已经无法满足我们的要求。因此,在这篇文章中,我们将向大家介绍Linux CronTab定时任务的使用方法,以及如何在自动化运维中提高效率。本文中,我们了解了Linux中的CronTab定时任务的基本概念、使用方法和常用技巧。下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,crondtab进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 阅读详情

相关推荐

保姆级教程:用Protege 5.5.0从零构建你的第一个知识图谱(附实战案例文件)

本文提供了一份详细的Protege 5.5.0使用指南,从零开始构建知识图谱。通过'中国古代文人关系网'实战案例,涵盖软件安装、本体创建、属性定义、实例填充到高级功能应用的全流程,帮助初学者快速掌握知识建模的核心技能。

weixin_26808205的博客 234

linux-系统定时任务cron

1、cron介绍 1.1、什么是cron? cron是linux系统中以后台进程模式周期性地执行命令或指定程序任务地服务软件。默认安装完linux系统之后,cron服务软件便会启动,服务对应的进程名字为crond。corn服务会定期(默认每分钟检查一次)检查系统中是否有需要执行的任务工作计划。 cron工具对应的crontab命令依赖于crond服务。 1.2、为什么要使用corn定时任务 要不断地对数据进行备份,但是很多时候变天系统业务繁忙,因此数据备份工作只能放到晚上执行,例如:网站数据库数据及

qq_46722017的博客 106万+

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

linux任务调度器:定时执行任务的工具 cron详解

Cron 是 Linux 和 Unix-like 操作系统中守护进程(daemon),用于调度周期性任务。Cron 可安排在特定时间运行的命令,如每天备份数据库、每周清理日志文件等。Cron 成为系统管理员日常工作中不可或缺的工具。cron 是一种基于时间的作业调度器,它允许用户安排命令或脚本( cron jobs)在后台自动运行,而无需用户手动干预。可以基于时间(分钟、小时、日期、月份、星期几)来安排。编辑 crontab 文件,可以安排各种命令在特定时间执行。Cron 可提高系统的自动化程度和管理效率。

weixin_70208651的博客 8307

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor ;TypeError: bbox_iou() got an unexpected keyword argument 'xywh‘

weixin_68331871的博客 3020

如何适配自定义激光雷达数据到LIO-SAM:解决ring和time参数缺失问题

本文详细解析了如何将非标准激光雷达(如速腾、Livox)适配到LIO-SAM框架中,重点解决ring和time参数缺失问题。提供了从源码修改到通用适配中间件的多层级解决方案,并包含实机测试与性能调优指南,帮助开发者高效完成雷达数据适配。

weixin_42551227的博客 421

Linux系统中的Cron定时任务详解

在Linux系统中,Cron是一种强大的定时任务调度器,它允许用户安排在特定时间自动执行的命令或脚本。本文将详细介绍如何在Linux系统中使用Cron定时任务,包括Cron的基础知识、如何配置和管理Cron任务,以及一些高级用法。

常备不懈 2436

EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

雷赛-EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

weixin_38570076的博客 1884

13Linux系统定时任务Cron(d)

在调试时,将任务执行频率调快一点,例如,每天执行的任务,可以改为每分钟、每5分钟执行一次,或者以当前时间为准,推迟5分钟以后,看能否执行,而且是不是按照你想要的去执行。如果正常没问题了,那么再改成需要的任务的执行时间。需要强调一点的是,有些计划任务是不允许频繁执行的。例如,定时向数据库里插入数据,这样的任务就要在测试机上先测试好,然后再部署到正式线上,这样正式工作时出问题的机率就少了。

不屈的铝合金的博客 3390

pta——特立独行的幸福

这是我认为比较复杂的一道题了,比较迷茫的点在于不知道要算各位平方和几次到不了1,才算他不是幸福数。突破口在于如果如果不是回到1也会有一些数字重复出现,只要重复出现的数字不是1,那就不是幸福数

m0_65620244的博客 4035

HFSS实战项目——微带带通滤波器设计

本文详细介绍并设计了一款微带带通滤波器,通过HFSS三位电磁仿真软件对其进行仿真设计及优化,仿真结果表明,本文设计的滤波器表现出优良的滤波性能,符合设计要求。

2401_87464239的博客 5391

Linux 下使用 cron 定时任务

Linux 定时任务详解!!!

GG Bond 的博客 1万+

【气候极端指数】MATLAB计算各种气候极端指数

简介各类气候极端指数,及其MATLAB计算代码

WW、forever的博客 4917

深入了解Linux Crontab:自动化任务调度的利器

CronTab是一个基于时间的任务调度程序,它允许用户设置定时任务,这些任务可以是任何命令、脚本或程序。在Linux系统中,CronTab是一种非常有用的工具,用于自动化执行周期性的后台任务。本文将详细介绍CronTab的基本概念、配置方法以及常见用例,帮助您充分利用CronTab的功能,提高工作效率。合理使用Crontab,可以节省用户的时间和精力,提高系统的自动化管理水平。*/n 表示每隔n个单位执行一次,如*/5 * * * *表示每5分钟执行一次。6.2 查看日志/var/log/cron。

weixin_50755086的博客 911

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux crontab-自动化任务

在 Linux 中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的数量时自动运行。红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新。譬如,被 locate 命令使用的 slocate 数据库每日都被更新。系统管理员可使用自动化的任务来执行定期备份、监控系统、运行定制脚本等等。 红帽企业 Linux 随带几个自动化任务的工具:cron、at、和 b

炯哥天地 1867

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

linux crontab自动化定时任务

linux是一个很能自动产生文件的系统程序运行日志,使用自动执行 1、删除文件命令: find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30 -name “*.log” -exec rm -rf {} \; 说明: 将/opt/soft/log/目录下所有30天前带”

IT打工匠 1619

VC中sqlite的使用

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

Linux-自动化运维(计划任务)——at和crontab命令

经验丰富的系统运维工程师可以使得Linux在无需人为介入的情况下,在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。 计划任务: 一次性计划任务 at 长期性计划任务(周期性) crontab 1、一次性计划任务 可以理解为布置作业,布置只需完成一次的作业。 at类命令的服务名为atd,可以使用命令systemctl status atd查看atd服务是否启动 执行脚本存放在 ...

熊博主 644

Linux CronTab 定时任务,轻松实现自动化运维

CronTab 是 Linux 系统下的一个定时任务工具,允许用户按照预定的时间执行某些任务或命令。它是系统运维中非常有用的工具,可以自动化执行各种任务,如备份数据、发送报告、清理日志等。确保脚本或命令在 CronTab 的环境中可以正常运行。如果 CronTab 的命令需要输出日志或错误信息,建议将输出重定向到一个文件,以便后续查看。通过合理地使用 CronTab,你可以轻松实现自动化运维,提高工作效率。命令编辑当前用户的 CronTab。命令查看当前用户的 CronTab。

640

使用Crontab实现Linux任务自动化

介绍如何在Ubuntu中利用终端和Cron Jobs实现任务自动化。

u013643074的博客 1001

云贝教育 |【技术文章】深入了解Linux Crontab:自动化任务调度的利器

CronTab是一个基于时间的任务调度程序,它允许用户设置定时任务,这些任务可以是任何命令、脚本或程序。在Linux系统中,CronTab是一种非常有用的工具,用于自动化执行周期性的后台任务。本文将详细介绍CronTab的基本概念、配置方法以及常见用例,帮助您充分利用CronTab的功能,提高工作效率。合理使用Crontab,可以节省用户的时间和精力,提高系统的自动化管理水平。每个用户都有一个独立的Crontab文件,存储在/var/spool/cron目录下。6.2 查看日志/var/log/cron。

weixin_45262354的博客 714

linux任务自动化 初步接触crontab和at

个人习惯比较散漫,以前积累的资料都很凌乱,而且大部分是野路子,慢慢的放到博客上吧,也算是一个鉴证。linux实现任务自动化大体可以分两类,系统初始化时运行和定时运行。对于定时运行linux自带了两种工具,crontab和at。关于crontab的介绍,有两篇比较靠谱的文章:计划任务工具 cron 的配置和说明、linux下实行计划任务。at的介绍相对较少,稍微说下:使用at.allow和at.de

浮躁的技术之路 621

Linux crontab定时任务:Miniconda-Python脚本自动化执行

通过Miniconda管理Python环境隔离,结合Linux crontab实现定时任务自动化,适用于数据处理、模型训练等重复性科研与工程任务。关键在于使用绝对路径调用解释器、合理配置日志输出与环境变量,并将依赖版本化以确保可复现性。

weixin_36059856的博客 901
上一篇: liunx下socket通信
下一篇: Pthreads并行编程之spin lock与mutex性能对比分析
goodspringin
博客等级 码龄14年 3粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值