Linux中的at
命令用于在指定的时间执行一次指定的命令。并且它可以运用在任务调度中,提高系统的自动化管理能力。
at
命令的使用方法如下:
语法:
at [-q queue] [-f file] [-mldvV] TIME
参数说明:
-q:指定任务队列的名称;
-f:指定执行命令所在的文件路径;
-m:表示任务执行结束时将任务结果通过邮件发送给用户;
-l:列出用户所有待执行的任务;
-d:删除指定编号的任务;
-v:显示任务的详细信息;
-V:显示版本号信息。
TIME:表示指定的任务执行时间。格式为HH:MM。
示例1:在指定时间执行一次指定的命令
例如,在18点30分执行一次/path/to/command arg1 arg2
命令,可以使用以下命令:
echo "/path/to/command arg1 arg2" | at 18:30
at
命令会将/path/to/command arg1 arg2
命令加入任务队列,等到执行时间到了,就会执行该命令。如果任务执行成功,就会在终端输出任务执行结果。
示例2:删除待执行的任务
如果想要删除TASKID为15的任务,可以使用以下命令:
atrm 15
此命令将会从任务队列中删除编号为15的任务。
示例3:批量执行命令
使用at
命令可以很容易地实现批量执行命令。例如,现在需要在每天早上六点十分执行/path/to/command1
命令,在每天晚上十点五十分执行/path/to/command2
命令。可以将这两条命令分别写入两个脚本文件command1.sh
和command2.sh
中,然后使用at
命令来批量执行。
echo "/path/to/command1" | at 06:10
echo "/path/to/command2" | at 22:50
以上命令将把/path/to/command1
和/path/to/command2
命令分别加到任务队列中。当时间到达06:10和22:50时,就会执行相应的命令。
总体来说,at
命令很好用,但是设置的时间必须是在未来,不能是过去。另外,在某些系统中,任务执行需要先安装和配置mail服务。可以使用/var/log/cron
来查看任务的执行情况。