在 Linux 系统中,我们经常需要安排一些任务在特定时间执行。比如半夜自动备份文件、定时发送提醒,或者在你离开电脑后运行一个耗时的脚本。今天要介绍的 at 命令,就是专门用来处理这类一次性任务的利器。
什么是 at 命令?
at 命令是 Linux 系统中的定时任务工具,和我们熟知的 cron 不同:
- cron用于重复执行的任务(比如每天凌晨备份)
- at则专注于只执行一次的任务(比如明天下午 3 点运行一个脚本)
简单说,如果你需要让电脑"未来某个时间干一件事,干完就完事",选 at 准没错。
第一步:安装 at 命令
大多数 Linux 系统默认已经安装了 at,但如果你的系统没有,可以用下面的命令安装:
- 
Debian/Ubuntu 系统(比如 Ubuntu、Linux Mint): sudo apt install at
- 
Red Hat 系系统(比如 CentOS、Fedora): sudo dnf install at
安装完成后,就可以开始使用啦!
基础用法:给未来的电脑安排任务
at 命令的用法很简单,基本格式是:
at [OPTIONS] <DATETIME>
先学会说"时间"
at 支持多种时间格式,小白也能轻松上手:
- 
相对时间(从现在开始算): - now + 1 hour(1 小时后)
- now + 30 minutes(30 分钟后)
- now + 2 days(2 天后)
 
- 
绝对时间(具体几点几分): - 3:30 PM(下午 3 点 30 分)
- 18:00(晚上 6 点)
 
- 
带日期的时间: - 10:00 tomorrow(明天上午 10 点)
- 2024-12-31 23:59(2024 年 12 月 31 日 23 点 59 分)
- 9:00 next Monday(下周一上午 9 点)
 
实战:安排第一个任务
比如我们想让电脑10分钟后在 /tmp 文件夹下创建一个包含"下班啦!"的文件,可以这样做:
- 
输入命令并指定时间: at now + 10 minutes
- 
此时会进入 at的编辑模式,输入要执行的命令:echo "下班啦!" > /tmp/reminder.txt
- 
按 Ctrl + D保存退出(先按 Ctrl 键不放,再按 D 键)。
系统会显示类似 job 1 at 2024-08-19 16:30 的提示,说明任务已安排好(1 是任务 ID,后面是执行时间)。
10 分钟后,去 /tmp 文件夹看看,是不是多了一个 reminder.txt 文件?
更简单的方式:一行命令搞定
如果觉得进入编辑模式麻烦,也可以用管道符 | 直接输入任务:
echo "echo '下班啦!' > /tmp/reminder.txt" | at now + 10 minutes
效果和上面完全一样!
管理你的定时任务
安排好任务后,我们还需要学会查看和取消任务。
查看已安排的任务
用 atq 命令可以列出当前用户所有的定时任务:
atq
输出会类似这样:
1       2024-08-19 16:30 a 用户名
其中第一个数字就是任务 ID(比如这里的 1)。
取消不需要的任务
如果想删除某个定时任务,用 atrm 命令加上任务 ID 即可:
atrm 1  # 删除 ID 为 1 的任务
实用技巧:让任务更听话
任务完成后发邮件提醒
加上 -m 选项,任务执行完成后会给当前用户发邮件提醒:
at -m 10:00 tomorrow
> backup_script.sh  # 执行备份脚本
> Ctrl + D
从文件中读取任务命令
如果任务命令很长,可以先写到文件里,用 -f 选项让 at 读取:
# 先创建一个包含命令的文件
echo "echo '自动备份完成' >> /var/log/backup.log" > task.txt
# 让 at 执行文件中的命令
at -f task.txt now + 1 hour
注意事项
- at只适合一次性任务,如果需要每天/每周重复执行,记得用- cron。
- 任务中的命令最好用绝对路径(比如 /usr/bin/echo而不是echo),避免因环境变量问题导致执行失败。
- 测试任务时可以先安排一个几分钟后执行的简单命令(比如创建文件),确认没问题再安排重要任务。
总结
at 命令就像一个"一次性闹钟",让 Linux 系统在你指定的时间自动完成任务。无论是简单的提醒还是复杂的系统操作,它都能轻松应对。记住几个关键命令:
- at 时间:安排任务
- atq:查看任务
- atrm 任务ID:删除任务
下次需要让电脑"稍后做事"时,不妨试试 at 命令,体验 Linux 自动化的便捷吧!
 
 
                     
            
        













 
                    

 
                 
                    