Linux at命令在重新启动后是否持续存在?


10

在重新启动后,以“ at”安排的作业是否会持续存在?另外,有人知道可以在不访问相关后台打印目录的情况下备份作业的方法吗?

我想从现在到一年(即1周,1个月,6个月)以指定的时间间隔发送电子邮件,因此这似乎是一个很好的工具,也许有更好的工具了?

Answers:


10

是的,它们在重新启动后是持久的(它们只是后台处理程序中的文件)。

关于访问它们,作为普通用户,您将无法访问文件,但是您可以构建一个系统来备份它们。也许是这样的:

MYAT=~/atjobs

/bin/rm -rf $MYAT/*

at -l >$MYAT/JOBS
for j in `cat $MYAT/JOBS | cut -f1`
do
  at -c $j >$MYAT/$i
done

如果您以后需要重新加载作业:

for j in `cat $MYAT/JOBS | cut -f1`
do
  # make sure the job isn't defined
  atrm $j
  # reload it from the file
  at -f $MYAT/$j `grep ^$j $MYAT/JOBS | awk '{ print $3, $2 }'`
done

(大多数都未经测试。基本命令是正确的,但是肯定有逻辑上的错误)

说了这么多,我不确定我会用at做您描述的任务。我可能会使用一个预先存在的日历系统。但是,如果失败了,我将使用每天运行的cron作业来检查文件,以查看是否有任何消息要发送。比工作更便携,如果您切换机器,更容易被记住...


我看到了如何备份作业,但是如果需要,我将如何重新加载所有这些作业?
凯尔·布​​兰特

3

当您在at安排作业时,即使完成重新引导(它们存储在/ var / spool / cron / atjobs中),该作业仍在计划中。

Cordialy,


0

我没有太多使用at命令,但是我已经使用cron计划要执行的任务,并且它在重新启动后是持久的。cron在过去十五年左右为我工作。

如果需要每天执行一次命令,然后即使系统停机也要执行一次命令,则可以使用anacron


我不认为cron对此真的有好处,除非我按照jj33的说明使用它,因为我不想定期运行某些内容。例如,当我安排时间时,甚至AI都希望事件A从现在开始运行一个月,而不是每个月运行一次。
凯尔·布​​兰特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.