可以通过at命令来测试,倒回可能会导致异常或管理中断的操作。
- 开启进程
systemctl start atd
systemctl enable atd
systemctl status atd
- 命令行方式编辑
at 23:00
at> sync
at> /sbin/shutdown -h now
at> at> <EOT> 这里按Ctrl + d退出
job 20 at Sat Jun 22 12:59:00 2019
- 文件命令编辑方式
vim cmds.txt
at -f cmds.txt 11:20
- 时间格式
at [option] TIME
option:
-l :列出指定队列中等待运行的作业;相当于atq
-d :删除指定的作业;相当于atrm
-c :查看具体作业任务
-f /path/from/somefile :从指定文件中读取任务
TIME:
HH:MM [YYYY-mm-dd]
noon,midnight,teatime
tomorrow
now+n{minutes,hours,days, OR weeks}
例子:
at -f cmds.txt 20:20 2020-12-05
at -f cmds.txt now+10minutes
at -f cmds.txt now+1hours
at -f cmds.txt now+10day
at -f cmds.txt 23:59 当天
- 常用命令
使用at -l或者atq命令查看at jobs
$ at -l
19 Sat Jun 22 11:52:00 2019 a root
其中19为job编号。
使用at -c命令查看job内容
[user@bee-a ~]$ at -c 22 | tail -5
${SHELL:-/bin/sh} << 'marcinDELIMITER75d3816a'
pwd 我们的命令1
date 我们的命令2
marcinDELIMITER75d3816a
查看任务还可以:
$ sudo ls -l /var/spool/at
total 2
-rwx------. 1 user user 2830 Jun 22 13:11 a00017018d0759 这个就是你的at job
drwx------. 2 root root 6 Jun 22 13:04 spool
at的job执行完毕后会邮件通知
You have new mail in /var/spool/mail/user
注意:所有命令的回显都会以邮件形式发送,而不会直接呈现在控制台。
使用at -d命令删除指定编号的job
at -d 22 这里22是at job的编号(atq 输出的第一列数字)
- 其他
黑白名单:
/etc/at.allow
/etc/at.deny
Linux mail的使用(邮件只发给su之前的用户)
mail
$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/user": 9 messages 1 unread
1 root Sat Jun 22 11:34 36/696 "Output from your job 11"
2 root Sat Jun 22 11:36 37/1629 "Output from your job 12"
3 root Sat Jun 22 11:45 22/628 "Output from your job 14"
4 root Sat Jun 22 11:47 22/628 "Output from your job 16"
&h 查看所有的邮件列表
&t <message list> 或者&n 或者直接回车,来查看相应的邮件
&d <message list> 如&d 12 或者&d 1-9
&q