我一直习惯于at
安排在特定日期和时间发送电子邮件。问题是我希望at
执行的命令应该将作业 ID 作为参数,因此为什么我应该是生成它们的人。除此之外,at
使用的根本不是 id,而是自动递增的计数,这意味着我必须担心它们何时会重置。
我的主要询问是使用自定义 ID 创建新的职位。这意味着在使用以下命令创建作业时:echo "touch file" | at now + 1 minute
,如果它可以是这样的:echo "touch file" | at -i <custom-id> now + 1 minute
。这样当我点击 时atq
,我会发现:<custom-id> Mon Feb 24 19:00:00 2020 a user
。
那么,当我使用 OR 创建作业时,是否有一种方法可以自定义作业at
,或者是否有任何可扩展性更好的开源替代方案?
答案1
at
您可以使用此类代码获取提交的作业编号。该示例提交了一个仅休眠五分钟的作业,因此您显然必须对此进行调整。提交的输出at
如下所示job 1175 at Mon Feb 24 18:28:00 2020
,grep
命令与此匹配以提取作业编号
job=$( echo "sleep 300" | at now 2>&1 | grep -oP 'job\s+\K\d+' )
echo "The job identifier is $job"
在将作业编号提交给 之前,无法识别该作业编号at
。