您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# at的执行时间怎么设置
## 一、at命令简介
`at`是Linux/Unix系统中用于在指定时间执行一次性任务的命令行工具。与`cron`不同,`at`不用于周期性任务,而是专门为单次定时执行设计的。其基本语法为:
```bash
at [选项] 时间
绝对时间(支持多种格式):
at 14:30 # 今天14:30
at 2:30 PM # 今天14:30(12小时制)
at 14:30 2024-03-15 # 指定日期
相对时间:
at now + 2 hours # 2小时后
at now + 30 min # 30分钟后
at midnight + 3 days # 3天后的午夜
关键词 | 含义 |
---|---|
noon |
中午12:00 |
teatime |
下午16:00(英国习惯) |
tomorrow |
明天同一时间 |
midnight |
午夜00:00 |
at 9:00 AM next week # 下周同一时间
at 3 PM + 1 week # 一周后的15:00
at 16:30
at>
提示符后输入要执行的命令(每行一条)Ctrl+D
结束输入at 17:00 -f /path/to/script.sh
at 18:00 << EOF
/path/to/command > /tmp/output.log 2>&1
EOF
atq # 或 at -l
atrm 任务编号 # 或 at -d
编辑/etc/at.deny
和/etc/at.allow
文件控制访问权限。
at
执行时不会继承当前shell环境变量,建议在命令中显式设置:
at 20:00 << EOF
export PATH=/usr/local/bin:$PATH
/path/to/command
EOF
使用TZ
环境变量指定时区:
at 10:00 TZ='Asia/Shanghai'
at
默认只支持分钟级精度,如需秒级精度可结合sleep:
at now << EOF
sleep 10 && /path/to/command
EOF
确保atd服务运行:
sudo systemctl enable --now atd
echo "shutdown -h now" | at 23:59
at 2:00 AM << EOF
wget -c http://example.com/largefile.zip
EOF
at 1:00 AM tomorrow << EOF
mysqldump -u root -p dbname > backup.sql
EOF
特性 | at | cron |
---|---|---|
执行频率 | 单次 | 周期重复 |
适用场景 | 临时任务 | 常规计划任务 |
时间精度 | 分钟级 | 分钟级 |
配置复杂度 | 简单 | 需要编辑配置文件 |
at 12:00 << EOF
echo "[$(date)] 任务开始" >> /var/log/at.log
/path/to/sensitive_command
echo "[$(date)] 任务完成" >> /var/log/at.log
EOF
当系统负载低于1.5时执行:
batch << EOF
/path/to/cpu_intensive_task
EOF
at -c 任务编号
at
命令的时间设置虽然简单,但通过灵活组合可以实现:
- 绝对/相对时间指定
- 复杂时间表达式
- 与环境变量的配合使用
掌握这些技巧后,可以高效管理系统中的临时定时任务。建议结合具体需求选择at
或cron
,并注意做好日志记录和权限控制。
注:本文示例基于Linux系统,其他Unix-like系统可能略有差异。 “`
这篇文章共计约1250字,采用Markdown格式编写,包含: 1. 多级标题结构 2. 代码块示例 3. 表格对比 4. 注意事项提示框 5. 实际应用案例 6. 命令行参数说明 可根据需要进一步扩展具体案例或添加截图说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。