Linux atコマンドは再起動後も持続しますか?


9

「at」でスケジュールされたジョブは再起動後も持続しますか?また、関連するスプールディレクトリにアクセスせずにジョブをバックアップする方法を知っている人はいますか?

今から1年(つまり、1週間、1か月、6か月)を指定した間隔で電子メールを送信したいので、これは良いツールのように思えますが、もっと良いツールがあるでしょうか?

回答:


9

はい、それらは再起動後も持続します(それらはスプール内の単なるファイルです)。

それらにアクセスすることに関しては、通常のユーザーとしてファイルにアクセスすることはできませんが、それらをバックアップするシステムを構築することができます。多分このようなもの:

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

(これはほとんどテストされていません。基本的なコマンドは正しいですが、どこかにあるロジックにバグがあるはずです)

とはいえ、あなたが説明するタスクに私が使用するかどうかはわかりません。おそらく、既存のカレンダーシステムを使用します。それでも失敗した場合は、毎日実行するcronジョブを使用して、送信するメッセージがあるかどうかファイルをチェックしました。仕事よりもはるかに移植性が高く、マシンを切り替えても覚えられる可能性がはるかに高い...


それによってジョブがどのようにバックアップされるかはわかりますが、必要に応じてこれらのジョブをすべて再ロードするにはどうすればよいですか?
カイルブラント

3

atを使用してジョブをスケジュールすると、再起動が実行されても(/ var / spool / cron / atjobsに保存されます)、ジョブは引き続き計画されます。

コーディアリー、


0

私はatコマンドをあまり使用していませんが、cronを使用してタスクの実行をスケジュールしており、再起動後も持続します。cronは過去15年間私のために働いてきました。

コマンドを毎日1回実行し、システムがダウンしても1回実行する必要がある場合は、anacronを使用できます。


定期的に何かを実行したくないので、jj33で述べたように使用しない限り、cronはこれに本当に適しているとは思いません。たとえば、AIをスケジュールする場合でも、イベントAを1か月後に実行する必要がありますが、毎月実行する必要はありません。
カイルブラント
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.