Devo salvar meu arquivo crontab em / tmp?

7

Eu ssh para um servidor e quero adicionar alguns trabalhos diários (especificamente para renovar tickets do Kerberos mesmo quando eu sair e ainda quero que meus programas na tela ou tmux continuem sendo executados) para o cron. Então corro crontab -e e adiciono o seguinte,

00 00 * * * kinit -R
00 12 * * * kinit -R

Quando o salvo, sou perguntado pelo editor:

File Name to Write: /tmp/crontab.HMpG7V 

Não é que os arquivos em /tmp possam ser excluídos pelo sistema operacional? Especialmente depois de sair do servidor?

Onde devo armazenar meu arquivo crontab? Posso salvar o arquivo crontab em $ HOME ou algum espaço melhor?

    
por Tim 21.04.2015 / 01:38

3 respostas

10

crontab -e abre um arquivo em / tmp em vez do crontab real para que ele possa verificar erros no seu novo crontab e impedir que você sobrescreva seu crontab real com esses erros. Se não houver erros, seu crontab real será atualizado. Se crontab -e apenas escreveu diretamente para o seu crontab, então você arriscaria que todos os seus cronjobs não fossem executados devido a um erro de sintaxe em seu novo crontab.

sudoedit , visudo , vipw , etc. operam no mesmo princípio.

Não se preocupe, seu crontab real mora em um local não volátil no disco.

    
por 21.04.2015 / 01:43
2

/tmp é onde o arquivo crontab temporário é gravado. Depois de salvar e sair, crontab confirmará as alterações em um diretório diferente e mais apropriado em seu sistema (geralmente em /var/spool/cron , se bem me lembro). Então, não se preocupe, o sistema operacional pode deletar seu / tmp, mas nunca vai tirar seus crontabs.

    
por 21.04.2015 / 14:27
1

Os arquivos Crontab residem em / var / spool / cron / crontabs / sob o nome de usuário ou ID do usuário. Como podem surgir situações em que o crontab localizado aqui não esteja mais conectado à sua conta de login, é recomendável que você salve uma cópia em seu diretório pessoal, digamos /home/userid/.crontab, para que você possa restaurá-la facilmente se precisar para. Isso também permite colocá-lo sob controle de revisão, caso deseje.

Se o seu diretório pessoal for realocado para outro sistema, muitas vezes o crontab do diretório de spool não o acompanha, a menos que o administrador do sistema leve isso em consideração. Nem é / var / spool sempre backup ou restaurado quando um sistema precisa ser refeito.

Então, novamente, é recomendado que uma cópia do seu crontab seja mantida em seu diretório pessoal.

Use seu editor favorito (pico, vi, emacs, etc) para editar o ~ / .crontab e então use o crontab para aplicá-lo em / var / spool / crontabs. Assim:

% pico ~/.crontab; crontab ~/.crontab

Se você gosta de aliases, pode fazer um para ser executado.

    
por 21.04.2015 / 02:11

Tags