【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 分钟前
linux内核查看网口负荷的指令
linux·服务器·笔记
gsls2008082 分钟前
服务器状态监控Uptime Kuma
运维·服务器·git
郝学胜-神的一滴2 分钟前
Linux多线程编程:深入解析pthread_detach函数
linux·服务器·开发语言·c++·程序人生
同聘云4 分钟前
阿里云国际站高防服务器的原理是什么?高防ip怎么做??
服务器·tcp/ip·阿里云
深圳市恒讯科技9 分钟前
美国原生IP服务器有什么优势?
服务器·网络协议·tcp/ip
wdfk_prog9 分钟前
[Linux]学习笔记系列 -- [fs]locks
linux·笔记·学习
HIT_Weston11 分钟前
78、【Ubuntu】【Hugo】搭建私人博客:文章分类
linux·运维·ubuntu
咕噜企业分发小米13 分钟前
阿里云服务器如何实现与其他阿里云产品的无缝集成?
服务器·数据库·阿里云
卓豪终端管理15 分钟前
从安全配置开始,构建主动防御体系
运维·网络·安全
一个很帅的帅哥16 分钟前
GitHub MCP 服务器(共 58 个,按星标数降序)
服务器·github