您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux at命令怎么使用
## 1. 什么是at命令
`at`是Linux系统中一个强大的任务调度工具,允许用户在指定时间执行一次性任务。与`cron`不同,`at`不用于周期性任务,而是专门为单次延迟执行设计的。
## 2. 基本语法
```bash
at [选项] 时间
执行后会进入交互式界面,输入要执行的命令后按Ctrl+D
保存。
at now + 5 minutes
(5分钟后)at noon
(今天中午12点)at midnight
(午夜)at teatime
(下午4点)at tomorrow
(明天同一时间)at 10:00 AM July 20
(7月20日上午10点)at 2:30 PM tomorrow
(明天下午2:30)at 15:30 2023-12-31
(2023年12月31日15:30)选项 | 说明 |
---|---|
-f |
从文件读取命令 |
-l |
列出待执行任务(等同atq ) |
-d |
删除任务(等同atrm ) |
-v |
显示任务执行时间 |
-m |
任务完成后发送邮件 |
$ at now + 1 hour
at> echo "Hello World" > ~/message.txt
at> <EOT>
job 1 at Mon Jul 10 15:30:00 2023
$ cat myscript.sh
#!/bin/bash
echo "Backup started at $(date)" >> /var/log/backup.log
tar -czf /backups/home_$(date +%Y%m%d).tar.gz /home
$ at -f myscript.sh 2:00 AM
$ at -l
1 Mon Jul 10 15:30:00 2023 a username
$ at -d 1
$ at now + 10 minutes
at> /path/to/script.sh > /var/log/script.log 2>&1
at
执行时不会继承当前shell的环境变量,解决方法:
$ at now + 1 minute
at> . ~/.bashrc; /path/to/script.sh
通过/etc/at.allow
和/etc/at.deny
文件控制用户权限:
at.allow
存在,只有列出的用户可以使用at
at.allow
不存在,检查at.deny
at
任务执行时不会显示在终端,所有输出需要通过重定向保存at
会通过邮件发送命令输出at
任务仍然有效batch
命令在系统负载较低时执行任务atq
: 查看待执行任务队列atrm
: 删除待执行任务batch
: 在系统负载低于1.5时执行任务at
需要atd
服务运行:
# 检查状态
systemctl status atd
# 启动服务
systemctl start atd
# 设置开机启动
systemctl enable atd
at
任务执行日志通常记录在:
/var/log/syslog # Ubuntu/Debian
/var/log/messages # CentOS/RHEL
使用grep
过滤查看:
grep "atd" /var/log/syslog
at
命令是Linux系统管理中的实用工具,特别适合需要单次延迟执行的场景。掌握at
命令可以大大提高工作效率,实现自动化任务调度。建议结合具体需求多加练习,熟悉各种时间格式和选项的使用。
“`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。