【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

相关推荐
少妇的美梦2 小时前
logstash教程
运维
chen9452 小时前
k8s集群部署vector日志采集器
运维
chen9452 小时前
aws ec2部署harbor,使用s3存储
运维
轻松Ai享生活6 小时前
5 节课深入学习Linux Cgroups
linux
christine-rr7 小时前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5557 小时前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆7 小时前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220897 小时前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++8 小时前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy8 小时前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡