Linux计划任务

news2024/12/24 20:24:50

常见的计划任务:进行日志的轮替(log rotate);日志文件分析(logwatch)任务;建立locate数据库;man page查询数据库的建立;RPM软件登录文件的建立;移除暂存档;与网络服务相关的分析行为。

分类

一次性:只执行一次的事项。命令:at

循环性:相隔固定的周期来进行的事项。命令:crontab

一次性计划任务

atd

使用一次性工作排程前,Linux必须有负责这个排程的服务,此服务为 atd。所以应先检查系统并将atd服务打开。

at

使用at指令来设定要进行的工作,并将此工作以文本文件的形式写入 /var/spool/at/ 目录下,等待atd服务的调用执行。

处于安全考虑,并非所有人都可以进行at工作排程,利用 /etc/at.allow 和 /etc/at.deny 这两个文件进行at的使用限制,工作流程如下:

1. 先找寻/etc/at.allow这个文件,写在这个文件中的使用者才能使用at,没有在这个文件中的使用者则不能,使用at (即使没有写在at.deny 当中); .

2.如 果/etc/at.allow 不存在,就寻找/etc/at.deny这个文件,若写在这个at.deny的使用者则不能使用at,而没有在这个at.deny文件中的使用者,就可以使用at咯;

3. 如果两个文件都不存在,那么只有root 可以使用at 这个指令。

命令:at [-mldv] TIME

-m:当at工作完成后以email通知使用者工作完成

-l:相当于 atq,列出目前系统上的at工作排程

-d:相当与 atrm,取消某个at排程

-v:显示at排程中任务列表

TIME:

HH:MM

04:00   在今日的04:00进行,若时刻已超过,则明天的04:00进行此工作

HH:MM YYYY-MM-DD

04:00 2026-01-02   在2026-01-02日04:00进行此工作

HH:MM[am|pm] [Month] [Date]

04:00pm July 30   在7月30日下午04:00进行此工作

HH:MM[am|pm] + number [minutes|hours|days|weeks]

now + 5 minutes   在5分钟后进行此工作

04pm + 3 days 在3天后的下午04:00进行此工作

案例:

机房预计2025-09-20停电,想在2025-09-19 23:00关机

atq

查询目前主机上有多少at的工作排程

atrm

工作号:移除某个at工作排程

循环性

使用者设定

为了安全起见,与at相同,可以限制使用crontab的用户名。cron.allow若存在,优先级高于/etc/cron.deny

  • /etc/cron.allow:将可以使用crontab 的账号写入其中,若不在这个文件内的使用者则不可使用crontab
  • /etc/cron.deny:将不可以使用crontab 的账号写入其中,若未记录到这个文件当中的使用者,就可以使用crontab

当用户使用crontab 这个指令来建立工作排程之后,该项工作就会被纪录到/var/spool/cron/ 里面去了,而且是以账号来作为判别,举例来说,dmtsai 使用crontab 后,他的 工作会被记录到/var/spool/cron/dmsati。

命令

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

-u:只有root才能进行这个任务,也可以帮其他使用者建立/移除crontab工作排程

-e:编辑crontab的工作内容

-l:查阅crontab的工作内容

-r:移除所有的crontab工作内容

各项 * * * * * 命令 含义如下

日月 不能和 周 一起出现 

每周六都与朋友有约,要在每个星期五下午-04:30告诉他周六的约定不要忘

30 16 * * 5 mail friend < /home/用户家目录/friend.txt

配置文件:/etc/crontab,/etc/cron.d/*

cron这个服务最低侦测间隔是分钟,所以cron每分钟会读取一次 /etc/crontab 与 /var/spool/cron 里面内容

/etc/crontab是一个纯文本文档,可以用root编辑,编辑保存后cron就会按设定的来执行了,有时候由于某些原因,cron没有立即生效,可以重启服务 systemctl restart crond

crond读取配置文件的位置

  • /etc/crontab    与系统运作相关
  • /etc/cron.d/*    与系统运作相关
  • /var/spool/cron/*    与用户自己的配置相关

其中 /etc/cron.d/0hourly 里面末行,run-parts 脚本会在大约5分钟内随机选取一个时间来执行 /etc/cron.hourly 目录内的所有执行文件,因此,/etc/cron.hourly 里面的文件必须是能被直接执行的脚本,而不是分时日月周的设定。

总结

个人化的行为使用「crontab-e J: 如果你是依据个人需求来建立的例行工作排程,建议直接使用crontab -e来建立你的工作排程。这样也能保障你的指令行为不会被大家看到

系统维护管理使用「vim /etc/crontab J: 如果你这个例行工作排程是系统的重要工作,为了让自己管理方便,同时容易追踪,建议直接写入/etc/crontab配置

自己开发软件使用「vim /etc/cron.d/newfile」: 如果你是想要自己开发软件,那当然最好就是使用全新的配置文件,并且放置于/etc/cron.d/ 目录内即可。

固定每小时、每日、每周、每天执行的特别工作:如果与系统维护有关,还是建议放置到/etc/crontab 中来集中管理较好。如果想要偷懒, 或者是一定要再某个周期内进行的任务,也可以放置到上面

谈到的几个目录中,直接写入指令即可

anacron

作用:可以执行时间到了却没有执行的排程。(比如某天机房停电,当天部分排程没有做,可以利用此命令去执行已经错过时间未执行的排程)

配置文件:/etc/anacrontab

天数:anacron执行当前与时间戳(/var/spool/anacron/ 内的时间纪录)相差天数,若超过此天数,就准备执行,若没有超过,则不予执行。

延迟时间:若确定超过天数导致要执行排程了,就请延迟时间,因为担心立即启动会有其他资源冲突

工作名称:没实际意义,通常与后续的目录资源名称相同

实际要执行的指令:通过run-parts处理的

anacron执行流程

(以上图中 cron.daily 为例)

由/etc/anacrontab 分析到cron.daily 这项工作名称的天数为1天;

由/var/spool/anacron/cron.daily 取出最近一次执行 anacron的时间戳;

由上个步骤与目前的时间比较,若差异天数为1天以上(含1天),就准备进行指令;

若准备进行指令,根据/etc/anacrontab的设定,将延迟5分钟+ 3小时(看START_ HOURS_ RANGE的设定);

延迟时间过后,开始执行后续指令,亦即「run-parts /etc/cron.daily」这串指令;执行完毕后,anacron程序结束。

crond和anacron关系

crond会主动去读取/etc/crontab, /var/spool/cron/*, /etc/cron.d/* 等配置文件,并依据分、时、日、月、周」的时间设定去各项工作排程;

根据/etc/cron.d/0hourly 的设定,主动去/etc/cron.hourly/ 目录下,执行所有在该目录下的执行文件;因为/etc/cron.hourly/0anacron 这个脚本文件的缘故,主动的每小时执行anacron ,并呼

叫/etc/anacrontab的配置文件;

根据/etc/anacrontab 的设定,依据每天、每周、每月去分析/etc/cron.daily/, /etc/cron. weekly/, /etc/cron.monthly/内的执行文件,以进行固定周期需要执行的指令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尺度悖论解析费米悖论:从夜郎自大到揭秘宇宙中智慧生命的谜团

费米悖论是一个引人入胜的问题&#xff0c;它引发了人们对宇宙中是否存在其他智慧生命体的思考。然而&#xff0c;尺度悖论提供了一个可能的解释角度&#xff0c;即我们对宇宙的观测和推断尺度可能太小&#xff0c;无法涵盖整个宇宙范围。下面深入探讨尺度悖论以及费米悖论的具…

Linux系统一般用来干嘛

Linux系统是一种开源的操作系统&#xff0c;广泛应用于服务器、嵌入式设备、超级计算机等领域。它具有高度的稳定性、安全性和灵活性&#xff0c;可以用来进行各种各样的任务&#xff0c;例如&#xff1a; 1、服务器操作系统 Linux系统在服务器领域应用广泛&#xff0c;可以用…

Maven继承

Maven 在设计时&#xff0c;借鉴了 Java 面向对象中的继承思想&#xff0c;提出了 POM 继承思想。 当一个项目包含多个模块时&#xff0c;可以在该项目中再创建一个父模块&#xff0c;并在其 POM 中声明依赖&#xff0c;其他模块的 POM 可通过继承父模块的 POM 来获得对相关依赖…

微信小程序自定义导航栏

微信小程序自定义导航栏 业务需求&#xff1a; 点击小房子进行跳转指定的页面 、更改小房子的样式、或者是自定义导航栏 首先我们需要找到pages.json这个文件 如果是原生的微信小程序文件名字是 app.json其实就是找到配置路由的文件在代码里面添加属性"navigationStyle&qu…

java设计模式(十四)模板方法

目录 定义模式结构角色职责代码实现适用场景优缺点 定义 模板方法模式(Template Method Pattern)&#xff0c;又叫模板模式(Template Pattern)&#xff0c; 指在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的…

1. Hadoop 入门

1. Hadoop 入门 1. 大数据概述 1. 大数据相关说明 大数据由来&#xff1a; 传统数据处理应用软件不足以处理&#xff08;存储和计算&#xff09;它们大而复杂的数据集 大数据面临的两大问题&#xff1a; 针对海量数据的 存储、计算 大数据的特性&#xff1a;容量大、种类多…

VFP使用BLOB字段存取图片到SQL2000,显示出来也EASY

首先来看一下BLOB这个数据类型的介绍&#xff1a; 大二进制对象(Blob)数据类型&#xff0c;若要存储一个任何种类的二进制数据&#xff0c;如 ASCII 码文本、一个可执行文件(.exe) 或一个带有不确定长度的字节字符串&#xff0c;可使用大二进制对象数据类型。对于从 SQL Serve…

c++11 标准模板(STL)(std::bitset)(六)

定义于头文件 <bitset> template< std::size_t N > class bitset; 类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集&#xff0c;并将它与字符串和整数相互转换。 bitset 满足可复制构造 (CopyConstructible) 及可复制赋值 (CopyAssign…

港科夜闻|海南省教育厅党委书记曹献坤到访香港科大(广州)开展实地调研

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、海南省教育厅党委书记曹献坤到访香港科大(广州)开展实地调研。香港科大(广州)临时党委书记屈哨兵从政治建设、思想建设、组织建设、制度建设及工作机制等方面&#xff0c;为曹献坤书记详细介绍了学校的党建工作体系构建&…

C盘爆了怎么办

一、删除大文件 关闭hiberfil.sys功能 关闭hiberfil.sys功能&#xff08;系统休眠时才会用到&#xff09; 管理员身份运行cmd 输入如下命令 powercfg.exe -h off移动pagefile.sys 这是虚拟内存文件,不建议删除&#xff0c;可以移动 右击此电脑->属性->高级系统设置 …

被吐槽,苹果挤牙膏式发布会,跟微信产品迭代如出一辙

大家好&#xff0c;我是校长。 今天一大早醒来&#xff0c;苹果发布会&#xff0c;毫无意外&#xff0c;在 iOS 系统更新迭代方面&#xff0c;可谓是乏善可陈&#xff0c;毫无新意。 当然了&#xff0c;被吐槽也就在情理之中了。 很多人说 iOS17 的最大变化&#xff0c;就是没有…

ISO21434 产品开发网络安全(七)

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 设计 4.2 集成和验证 五、输出 一、概述 本条款描述了网络安全要求和架构设计的规范&#xff08;章节10.4.1&#xff09;。 此外&#xff0c;本子句还描述了集成和验证活动&…

Yakit: 集成化单兵安全能力平台使用教程·反连管理篇

Yakit: 集成化单兵安全能力平台使用教程反连管理篇 1.端口监听器2.DNSlog3.反连服务器4.ICMP-Sizelog5.TCP-Portlog6.Yso-Java Hack1.端口监听器 反弹 Shell 的接收工具,利用端口监听器可以在服务器上开启一个端口,进行监听,并进行交互 输入想要监听的端口,点击监听该端口…

直播抽奖功能(互动功能接收端JS-SDK)

功能概述 本模块主要用于处理抽奖相关的逻辑&#xff0c;可以对抽奖开始和抽奖结束等事件进行监听以及提交观众中奖信息&#xff0c;接入方可以根据这些事件流程定制自己的UI界面。 抽奖--效果截图 抽奖--效果截图 初始化及销毁 在实例化该模块并进行使用之前&#xff0c;需要…

Shell脚本:for循环

shell脚本-for循环 一、for循环&#xff1a;1.格式&#xff1a;2.实操&#xff1a;3.类c语言&#xff1a; 一、for循环&#xff1a; 1.格式&#xff1a; &#xff08;1&#xff09;for 已知的循环次数场景 for 变量名 in 【 名称范围 】 do 命令序列&#xff08;执行内容&…

Vue+springboot美发美容化妆品产品商城系统

不同的游客可以注册成为用户&#xff0c;然后可以查看&#xff0c;搜索自己想买的美发产品&#xff0c;加入购物车&#xff0c;下订单&#xff0c;收货&#xff0c;确认付款等购物流程。前台和后台的分析使得该系统结构清晰&#xff0c;即包含管理员和用户两个最基本的实体&…

C++递推基本概念和基础知识

目录 一、递推的概念 什么是递推算法&#xff1f; 解决递推问题的一般形式 二、递推和递归的区别 三、递推的实例 一、递推的概念 什么是递推算法&#xff1f; “递推”是计算机解题的一种常用方法。利用“递推法”解题首先要分析归纳出“递推关系”。如经典的斐波那契数…

MIT 6.824 lab distributed system 分布式系统(1)----lab1 MapReduce

https://youtu.be/cQP8WApzIQQ 概念 为什么需要分布式系统&#xff1f; high performanceparallelism&#xff1a;分布式系统可以实现CPU、内存、硬盘的并行运行fault tolerancephysical&#xff1a;security / isolated 分布式系统的困难 concurrency&#xff1a;各个并行的…

【观察】金融行业决策智能化“换挡提速” 华为全球智慧金融峰会2023值得期待...

当前以数字化、智能化为特征的第四次工业革命正“扑面而来”&#xff0c;数字经济浪潮对各行各业都产生着深刻影响。其中&#xff0c;金融行业作为现代经济的核心&#xff0c;也面临着一系列重大的挑战和机遇。 相比于其他企业&#xff0c;金融行业依靠数据分析和智能决策更好地…

某公司招了一个大专生,候选人要一万月薪,HR给申请一万二,HR领导说:给一万三!...

无良公司看多了&#xff0c;不禁让人怀疑&#xff1a;这个世界上还有好公司和好hr吗&#xff1f; 来看看这位hr的故事&#xff1a; 最近我们招了一个大专生&#xff0c;5年经验。他的工资是7000&#xff0c;候选人想要10000&#xff0c;我给申请了12000&#xff0c;结果审批不通…