当前位置: 首页 > article >正文

Linux(20)——调度作业

目录

一、调度延迟的用户作业:

1、延迟的用户作业:

2、查看延迟的用户作业:

3、从计划中删除作业:

二、调度周期性用户作业:

1、周期性用户作业:

2、调度周期性用户作业:

3、用户作业格式:

三、调度周期性系统作业:

1、周期性系统作业:

2、/etc/anacrontab 文件:

3、Systemd 定时器:


一、调度延迟的用户作业:

        计划好运行的命令被称为任务或作业。红帽企业 Linux 可通过 at 命令调度延迟任务,at 软件包包含 atd 守护进程,和一组命令(at、atq 等)。在默认的 RHEL 安装过程中,将自动安装并启用 atd 守护进程 。root 及普通用户可以使用 at 命令创建计划任务,atd 守护进程提供 a-z 共 26个队列按字母排序越后面的队列优先级越低

1、延迟的用户作业:

        使用 at TIMESPEC创建作业,at 从 stdin 中读取指令,直至 Ctrl+D 终止。 也支持从脚本中导入指令。如下图将 date >> /home/student/myjob.txt 作为输入传递给 at 命令,作业从现在起两分钟后运行。

注:上述中 TIMESPEC 参数的使用非常灵活,如何使用可以参考 /usr/share/doc/at/timespec 中的内容。

2、查看延迟的用户作业:

        用户可使用 atqat -l 命令查看用户的待处理作业

        上图中标注部分含义如下:

(1)此作业唯一编号;

(2)作业的执行日期、执行时间;

(3)表示作业已排入默认队列 a(不同的作业可以排入至不同的队列中);

(4)作业的所有者。

        at -c JOBNUMBER 可以查看指定作业的详细信息

注:普通用户只能查看和管理自己的作业,而 root 用户可以查看和管理所有作业。

3、从计划中删除作业:

        atrm JOBNUMBER 命令可删除调度的作业,当用户不再需要调度的作业时,可将其从计划中删除。

二、调度周期性用户作业:

1、周期性用户作业:

        按计划重复运行的作业被称为周期性作业 。红帽企业 Linux 提供了 crond 守护进程管理周期性作业,由 cronie 软件包提供,会默认安装并启动 。crond 守护进程可读取多个配置文件,使用 crontab 命令编辑配置文件 ,如果计划任务运行失败,crond 会发送邮件给指定用户。

2、调度周期性用户作业:

        用户可使用 crontab 命令管理调度的作业,常用选项如下:

(1) -l 选项可列出当前用户的作业

(2)-r 选项将删除当前用户的所有作业

(3)-e 选项可编辑当前用户的作业

(4)crontab filename删除所有作业,将其替换为从 filename 读取的作业(未指定具体文件时,此命令将使用 stdin 输入)。

注:-u 选项可以用来管理其他用户的作业,但它可以利用以 root 身份运行的个人作业,因此不推荐使用 -u 管理其他用户的作业。

3、用户作业格式:

        crontab -e 调用 vim 进行计划任务的编辑,每行一个作业,支持空行和 # 注释行。

        如上图 crontab 的字段格式从左到右分别为:分  时  日  月  周  命令。除命令外其余五个字段使用相同的语法规则。

(1)表示始终;

(2)数字指定具体的分钟数、小时数、日期或者星期;

(3)x-y 表示范围,从 x 到 y(含 x y );

(4)x,y 表示列表,同时也可以表示范围;

(5)*/x 表示每间隔 x 执行一次作业。

注:综上所述,上图中 */2 * * * Tue-Thu 表示周二到周四每两分钟执行一次作业。

三、调度周期性系统作业:

1、周期性系统作业:

        系统管理员需要经常运行周期性作业,此时会使用系统范围的 crontab 文件调度这些作业而非 crontab 命令。系统范围的 crontab 文件与用户的 crontab 类似,唯一的不同是系统范围的 crontab 文件的命令字段前面有一个额外用户字段,用于指定运行命令的用户。

注:(1)周期性系统作业,将始终在 /etc/cron.d 目录下创建自定义 crontab 文件 (为防止软件升级覆盖,尽量不要更新 /etc/crontab 文件);

       (2)crontab 系统中还包含需要每时、每天、每周和每月运行的脚本目录。 这些目录中包含可执行的 shell 脚本,分别位于 /etc/cron.hourly//etc/cron.daily//etc/cron.weekly//etc/ cron.monthly/ 目录中;

       (3)使用 chmod +x script_name 命令可以将脚本变为可执行(脚本是可执行的才能运行)。

2、/etc/anacrontab 文件

        /etc/anacrontab 文件确保重要的作业始终运行,不会因为系统关闭或休眠而意外跳过应执行作业。/etc/anacrontab 文件调用 run- parts 命令运行每日、每周和每月的作业

注:如果由于系统重启而导致某个每日运行的系统作业未按时执行,则在系统启动后将立即执行此作业。但启动作业可能会有几分钟的延迟,具体延迟可参考 /etc/anacrontab 中 Delay in minutes 参数值。

3、Systemd 定时器:

        systemd 定时器单元可激活另一个不同类型的单元,只要待激活的单元名与该定时器的单元名匹配即可。

        例如,sysstat 软件包含有:sysstat-collect.timer 表示每隔 10 分钟收集系统统计信息,现将每 10 分钟更改为每 2 分钟如下:

        更改 systemd 配置后,使用 systemctl daemon-reload 让 systemd 重新加载配置。

        而在重新加载后,需要使用 systemctl 激活 timer unit 。


http://www.kler.cn/a/541356.html

相关文章:

  • 国产编辑器EverEdit - 迷你查找
  • Day38【AI思考】-彻底打通线性数据结构间的血脉联系
  • (2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型
  • c++ haru生成pdf输出饼图
  • 数巅科技中标科学城数科集团AI辅助企业数字化转型评估诊断
  • xss闯关
  • java配置api,vue网页调用api从oracle数据库读取数据
  • vscode怎么更新github代码
  • git命令行删除远程分支、删除远程提交日志
  • 【已解决】docker安装、换源及使用 docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
  • ArrayList和LinkedList有什么区别?在什么情况下使用ArrayList更高效?
  • Hive之最新方式MySQL5.7 安装
  • windows平台本地部署DeepSeek大模型+Open WebUI网页界面(可以离线使用)
  • 云计算——AWS Solutions Architect – Associate(saa)4.安全组和NACL
  • 基于spring boot的日志框架最佳实践
  • 开发完的小程序如何分包
  • 神经网络|(八)概率论基础知识-二项分布及python仿真
  • 1.Excel:某停车场计划调整收费标准❗(13)
  • 5、大模型的记忆与缓存
  • MariaDB MaxScale实现mysql8主从同步读写分离
  • 升级进行中 您的邮箱正在作为Outlook 2013升级的一部分优化
  • DEEPSEEK与GPT等AI技术在机床数据采集与数字化转型中的应用与影响
  • 苍穹外卖学习
  • 利用Minio实现大文件分片上传、断点续传、秒传
  • 5G无线网络技术深度解析
  • 游戏引擎学习第94天