Linux no comando persistente entre reinicializações?
9
Os trabalhos agendados com 'at' são persistentes nas reinicializações? Além disso, alguém sabe como é possível fazer backup dos trabalhos sem acesso aos diretórios de spool relevantes?
Quero enviar um email em intervalos especificados a partir de agora até um ano (ou seja, 1 semana, 1 mês, 6 meses), para que isso pareça uma boa ferramenta, talvez exista uma melhor?
Sim, eles são persistentes durante as reinicializações (são apenas arquivos em um spool).
Em relação ao acesso a eles, como usuário comum, você não terá acesso aos arquivos, mas poderá criar um sistema para fazer backup deles. Talvez algo parecido com isto:
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
Se você precisar recarregar o trabalho mais tarde:
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
(tudo isso não foi testado. O comando básico está correto, mas com certeza haverá um erro na lógica em algum lugar)
Tendo dito tudo isso, porém, não tenho certeza se usaria para a tarefa que você descreve. Eu provavelmente usaria um sistema de calendário pré-existente. Falhando isso, porém, eu usaria um trabalho cron executado diariamente que verificasse um arquivo para ver se havia alguma mensagem a ser enviada. Muito mais portátil do que nos trabalhos e muito mais provável de ser lembrado se você trocar de máquina ...
Vejo como isso faz o backup dos trabalhos, mas como eu recarregaria todos esses trabalhos, se necessário?
Kyle Brandt
3
Quando você agenda um trabalho com at, mesmo que uma reinicialização seja concluída (eles são armazenados em / var / spool / cron / atjobs), o trabalho ainda é planejado.
Eu não usei muito o comando at, mas usei o cron para agendar tarefas a serem executadas e é persistente durante as reinicializações. cron trabalhou para mim nos últimos quinze anos.
Se precisar que um comando seja executado uma vez por dia e, em seguida, uma vez, mesmo que o sistema seja desativado, você pode usar o anacron .
Eu não acho que o cron seja realmente bom para isso, a menos que eu o use como o jj33 afirmou, porque não quero executar algo em intervalos regulares. Por exemplo, quando eu agendar, mesmo a AI desejará que o evento A seja executado daqui a um mês, mas não todos os meses.
Quando você agenda um trabalho com at, mesmo que uma reinicialização seja concluída (eles são armazenados em / var / spool / cron / atjobs), o trabalho ainda é planejado.
Cordialy,
fonte
Eu não usei muito o comando at, mas usei o cron para agendar tarefas a serem executadas e é persistente durante as reinicializações. cron trabalhou para mim nos últimos quinze anos.
Se precisar que um comando seja executado uma vez por dia e, em seguida, uma vez, mesmo que o sistema seja desativado, você pode usar o anacron .
fonte