Linux at命令如何定时执行任务?

at 是 Linux 中用于安排一次性定时任务的核心工具,它允许用户在指定时间执行命令或脚本(例如备份文件、发送邮件或重启服务),任务执行后自动消失,适合临时性计划任务。


安装与基本语法

  1. 安装(多数系统已预装)
    若未安装,执行以下命令:

    sudo apt install at    # Debian/Ubuntu
    sudo yum install at    # CentOS/RHEL
  2. 启动服务

    sudo systemctl enable --now atd  # 启用并启动守护进程
  3. 基础语法

    at [选项] 时间

    输入命令后按 Enter,在 at> 提示符下输入要执行的命令,最后按 Ctrl+D 保存。


指定时间的 5 种常用格式

  1. 具体时间点

    at 14:30          # 14:30
    at 2:30 PM        # 14:30(12小时制)
    at 09:00 2025-08-01 # 指定日期
  2. 相对时间

    at now + 2 hours  # 2小时后
    at now + 30 min   # 30分钟后
    at noon + 1 day   # 明天中午
  3. at midnight       # 今晚午夜
    at teatime        # 下午16:00(系统默认)

核心操作示例

  1. 创建定时任务

    $ at now + 5 min
    at> /home/user/backup.sh  # 输入要执行的脚本
    at> echo "Done!" | mail -s "Alert" admin@example.com
    at> <EOT>                 # 按 Ctrl+D 保存
    job 3 at Mon Jul 15 10:25:00 2025
  2. 查看队列中的任务

    atq                      # 列出所有待执行任务
    # 输出示例:3   Mon Jul 15 10:25:00 2025 a user
  3. 删除任务

    atrm 3                   # 删除ID为3的任务
  4. 从文件读取命令

    at 15:00 -f /path/to/script.sh

实用选项详解

选项 作用
-m 任务完成后发送邮件给用户
-c 任务ID 查看任务的详细命令内容
-l 等同 atq,列出任务
-d 任务ID 等同 atrm,删除任务
-t 时间 使用 [[CC]YY]MMDDhhmm 格式时间

注意事项

  1. 权限控制

    • 通过 /etc/at.allow/etc/at.deny 文件管理用户权限:
      • at.allow 存在,仅允许列表中的用户使用 at
      • at.allow 不存在,检查 at.deny(黑名单)
      • 两文件均不存在时,仅 root 可用
  2. 环境变量问题
    at 默认使用最小环境变量,建议在脚本中使用绝对路径:

    at 08:00
    at> /usr/bin/python3 /data/scripts/cleanup.py  # 推荐
  3. 输出处理
    命令的输出会通过邮件发送给用户(除非重定向):

    at 09:00 <<EOF
    /opt/monitor.sh > /tmp/log.txt 2>&1  # 重定向输出到文件
    EOF

常见问题解决

  1. 任务未执行?

    • 检查 atd 服务状态:systemctl status atd
    • 查看系统日志:journalctl -u atd
    • 确认时间格式正确(避免时区混淆)
  2. 如何调试任务?
    使用 -c 查看任务内容:

    at -c 3 | less  # 检查ID为3的任务详情
  3. cron 的区别
    | 工具 | 类型 | 适用场景 |
    |——–|————|————————|
    | at | 一次性任务 | 临时计划(如维护提醒) |
    | cron | 周期性任务 | 日常自动化(如日志清理)|


安全实践

  • 敏感操作限制:避免在 at 中执行 rm -rf / 等危险命令
  • 日志审计:通过 syslog 查看 /var/log/syslog 中的 atd 记录
  • 权限最小化:普通用户任务应限制在个人目录内

引用说明参考 Linux 官方手册(man at)、IBM 开发者文档及 Red Hat 系统管理指南,实践前请确认您的系统版本,部分选项可能因发行版差异略有不同。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8262.html

(0)
酷番叔酷番叔
上一篇 2025年7月21日 17:37
下一篇 2025年7月21日 17:47

相关推荐

  • 安全加速SCDN租用如何选?

    在数字化时代,互联网内容的快速分发与安全访问已成为企业业务发展的核心需求,随着网络攻击手段的日益复杂和用户对访问体验要求的不断提高,传统的CDN(内容分发网络)逐渐难以兼顾加速效果与安全防护的双重需求,在此背景下,安全加速SCDN(Secure Content Delivery Network)应运而生,通过将……

    2025年11月24日
    1.4K00
  • 国内30G高防DNS解析,安全性如何保障?

    采用智能流量清洗与分布式节点,有效抵御30G攻击,确保解析服务高可用与稳定。

    2026年3月6日
    10500
  • debug命令运行汇编的方法是什么?

    在DOS系统中,debug.exe是一个经典的调试工具,可用于汇编程序的输入、汇编、执行和调试,通过debug命令运行汇编程序,需遵循以下步骤,结合具体命令和操作逻辑实现程序的加载与执行,启动debug环境首先需进入DOS命令行界面,通过以下命令启动debug:debug [文件名]若未指定文件名,将直接进入d……

    2025年8月25日
    19700
  • 如何快速记忆VBA命令?这些实用方法与技巧帮你轻松掌握

    VBA命令的记忆是许多Excel用户在学习自动化时的难点,但通过系统的方法和持续的实践,完全可以高效掌握,核心思路是“理解逻辑+分类记忆+实践强化+工具辅助”,而非死记硬背,以下从多个维度展开具体方法,理解VBA命令的本质:从“结构化”入手VBA命令并非孤立存在,其核心逻辑是“对象.属性/方法”的结构,对象是E……

    2025年8月24日
    17300
  • 电脑屏幕键盘如何开启使用?

    打开屏幕键盘方法: ,**Windows**: ,1. 设置 ˃ 轻松使用 ˃ 键盘 ˃ 开启”屏幕键盘”; ,2. 或按 Win+R 输入 osk 回车。 ,**macOS**: ,系统偏好设置 ˃ 辅助功能 ˃ 指针控制 ˃ 启用”备选控制方法”中的键盘。 ,**使用**:直接点击屏幕按键输入,支持触摸屏设备,可替代物理键盘操作。

    2025年7月9日
    25200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信