at命令是Unix和类Unix操作系统中的一个用于在指定时间运行指定命令的命令行工具。 at命令的作用是让用户在指定的时间执行一些指定的任务。
这个指定的任务可以是一个命令、一个脚本或者一个程序等。at命令并不是在指定时间点时自动运行程序的方式,而是在指定时间点将任务添加到at任务列表中,由操作系统的atd守护进程来持续检查这个列表并根据时间点来运行任务。
at命令的基本用法是:输入命令 at + 时间,按回车键后系统会提示用户输入要执行的命令或脚本,输入完成后按Ctrl+D键结束。
例如,要在3分钟后执行ls -l命令,可以使用以下的at命令:
at now +3 minutesls -l
Ctrl+D
以上命令中,at后面的now +3 minutes表示3分钟后执行。如果想在指定的时间点执行,可以使用以下的命令:
at 10:30 PMls -l
Ctrl+D
以上命令中,at后面的10:30 PM表示晚上10点30分执行。
在使用at命令时,可以添加一些参数来实现更多的功能。以下是at命令的一些常见参数:
at命令默认情况下会将执行结果通过mail命令发送给用户,使用-m参数可以关闭这个功能。
使用-f参数可以告诉at命令执行一个指定的文件而不是命令行中的命令。例如:
at now +3 minutes -f /home/user/test.sh
使用-l参数可以列出当前at任务列表。例如:
at -l
在使用at命令时,需要注意以下几点:
如果想让其他用户执行at任务,需要在root权限下执行at。
可以通过atq命令查看at任务列表中的任务ID,然后使用atrm命令来取消指定ID的任务。
at命令并不是精确的定时任务,可能会受到系统负载影响,导致任务执行时间有一定的误差。