【Linux】第十五章 调度未来任务

1.如何调度延迟的用户任务?

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

使用 at <时间> -f <脚本或命令> 命令指定在未来某个时间点执行任务。常见的时间格式:

  • now + 5 minutes:当前时间加上 5 分钟。
  • now + 1 hour:当前时间加上 1 小时。
  • 02:00 PM:指定某个具体时间。
  • midnight:今天午夜(00:00)。

使用 atq 或 at -l命令查看用户的待处理作业。

2.如何调度定期任务?

crond守护进程管理周期性作业,由 cronie软件包提供,默认安装并启动。crond守护进程读取多个配置文件,crontab 命令编辑配置文件。

  • crontab -l 列出当前用户的计划作业。
  • crontab -r 删除当前用户的所有作业。
  • crontab -e 编辑当前用户的作业。
  • crontab filename 删除所有作业,将文件中的任务添加到当前用户的 cron 表中。如果没有指定文件,系统会自动打开默认编辑器,允许你直接编辑和管理当前用户的 cron 表。
  • crontab -u 管理其他用户的作业。 不推荐 crontab 命令来管理系统作业。

3. crontab 文件中的用户作业时间格式怎么解释?

crontab 的字段格式是:分 时 日 月 周 命令。

  • * 表示始终

  • 数字可用于指定分钟数或小时数、日期或者工作日

  • x-y 表示范围,x 到 y(含)

  • x,y表示列表,列表也可以包含范围

  • */x 表示 x 的时间间隔

4. 如果需要以当前用户身份计划周期性作业,在上午8点到晚上9点之间每两分钟一次输出当前日期和时间,该作业只能在周一到周五运行,周六或周日不能运行。要怎么做?

首先使用命令:crontab -e ,打开cron配置,然后添加 */2 8-21 * * 1-5 date 。

5. 要计划周期性系统作业,应该将自定义的crontab文件放入哪个位置?

放在 /etc/cron.d目录下。

6.如何使用 systemd 定时调度任务?

systemd 作为现代 Linux 系统的初始化系统,它提供了比传统的 cron 更加灵活和强大的定时任务管理方式,适合需要系统级别任务调度的情况。systemd 通过 timerservice 单元来实现定时任务调度。

(1)在/etc/systemd/system目录下,为你想要定时执行的任务创建一个 systemd 服务单元(.service),完成后重新加载systemd配置:systemctl daemon-reload。

(2)在/etc/systemd/system目录下,创建一个 systemd 定时器(.timer),完成后重新加载systemd配置:systemctl daemon-reload。

(3)启动并启用定时器:systemctl start myscript.timer;systemctl enable myscript.timer

相关推荐
netho027 分钟前
影刀rpa证书题库使用教学
运维·服务器·rpa
无足鸟ICT1 小时前
【RHCA+】$[]
linux·运维·服务器
运维技术小记1 小时前
国产化环境配置 VNC 远程桌面:麒麟 V10 实战
linux·运维·服务器
xiaoye-duck2 小时前
《Linux系统编程》Linux 系统多线程(八): C++ 高并发线程池全链路深度解析与从零手撕实现
linux·c++·线程池
爱码少年2 小时前
一条Shell命令实现文件目录服务器间快速转移
服务器·shell
giaming0232 小时前
告别Docker Desktop!一款轻量级原生开发环境管理工具:FlyEnv
运维·docker·容器
laboratory agent开发2 小时前
智能体多工具串联执行中途失败,部分写入的数据如何回滚
运维·服务器·数据库
智塑未来2 小时前
金融 AIOps 选型指南:银行证券智能运维平台怎么选
运维·人工智能·金融
寒水馨2 小时前
Linux下载、安装protobuf-v35.1(附安装包protoc-35.1-linux-x86_64.zip)
linux·运维·服务器·google·序列化·protobuf·protoc