使用“at”安排的作业在重启后是否持久?另外,有人知道可以在不访问相关假脱机目录的情况下备份作业的方法吗?
我想从现在起至一年内以指定的时间间隔发送一封电子邮件(即 1 周、1 个月、6 个月),所以这似乎是一个很好的工具,也许有更好的工具?
答案1
是的,它们在重启后仍然有效(它们只是假脱机中的文件)。
关于访问它们,作为普通用户,您将无权访问这些文件,但您可以构建一个系统来备份它们。也许是这样的:
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 作业来检查文件是否有任何消息要发送。这比 at 作业更便携,而且如果您换了机器,更容易被记住……
答案2
当您使用 at 安排一项工作时,即使重新启动(它们存储在 /var/spool/cron/atjobs 中),该工作仍会按计划进行。
诚挚的,