在特定时间执行一次作业
注意: 默认情况下, at 大多数现代发行版都没有安装。
要在比现在更多的时间执行一次作业,在本例中的下午 5 点,你可以使用
echo "somecommand &" | at 5pm
如果要捕获输出,可以通常的方式执行此操作:
echo "somecommand > out.txt 2>err.txt &" | at 5pm
at
了解很多时间格式,所以你也可以这么说
echo "somecommand &" | at now + 2 minutes
echo "somecommand &" | at 17:00
echo "somecommand &" | at 17:00 Jul 7
echo "somecommand &" | at 4pm 12.03.17
如果没有给出年份或日期,则假定下次指定的时间发生。因此,如果你给了今天已经过去的一个小时,它将在明天开始,如果你给了一个已经过去一年的月份,它将在明年开始。
这也和 nohup 一起工作,就像你期望的那样。
echo "nohup somecommand > out.txt 2>err.txt &" | at 5pm
还有一些命令可以控制定时作业:
- atq 列出所有定时作业( atq ueue)
- atrm 删除了一个定时工作( atr e m ove)
- 批处理基本上与 at 相同,但仅在系统负载低于 0.8 时才运行作业
所有命令都适用于登录用户的作业。如果以 root 用户身份登录,系统范围的作业当然会被处理。