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 em execução) no cron. Então eu corro crontab -e
e adiciono o seguinte,
00 00 * * * kinit -R
00 12 * * * kinit -R
Quando eu o salvo, o editor pergunta:
File Name to Write: /tmp/crontab.HMpG7V
Não é que os arquivos /tmp
podem ser excluídos pelo sistema operacional? Especialmente depois que eu sair do servidor?
Onde devo armazenar meu arquivo crontab? Posso salvar o arquivo crontab em $ HOME ou algum espaço melhor?
Respostas:
crontab -e
abre um arquivo em / tmp em vez do crontab real, para que ele possa verificar se há erros no seu novo crontab e impedir que você substitua seu crontab real por esses erros. Se não houver erros, seu crontab atual será atualizado. Secrontab -e
apenas escrevesse diretamente no seu crontab real, você correria o risco de todos os seus cronjobs falharem devido a um erro de sintaxe no seu novo crontab.sudoedit
,visudo
,vipw
, Etc. operam sob o mesmo princípio.Não se preocupe, seu crontab real vive em um local não volátil no disco.
fonte
/var/spool
(normalmente), mas você nunca deve tocar no seu crontab real e também nunca precisará usá-locrontab -e
. Você provavelmente não tem o nível de acesso certo para editar o arquivo crontab bruto de qualquer maneira./tmp
é para onde o arquivo temporário do crontab é gravado. Depois de salvar e sair,crontab
as alterações serão confirmadas em um diretório diferente e mais apropriado em seu sistema (geralmente em/var/spool/cron
, se bem me lembro). Portanto, não se preocupe, o sistema operacional pode excluir seu / tmp, mas nunca removerá seus crontabs.fonte
Os arquivos Crontab residem em / var / spool / cron / crontabs / sob o nome de usuário ou o ID do usuário. Como podem surgir situações em que o crontab localizado aqui não está mais conectado à sua conta de login, é recomendável salvar uma cópia no diretório inicial, digitando /home/userid/.crontab, para que você possa restaurá-lo facilmente, caso necessário para. Isso também permite que você o coloque sob controle de revisão, se desejar.
Se seu diretório pessoal for realocado para outro sistema, geralmente o crontab do diretório spool não o acompanha, a menos que o administrador do sistema leve isso em consideração. O / var / spool nem sempre é feito backup ou restaurado quando um sistema precisa ser refeito.
Então, novamente, é recomendável que uma cópia do seu crontab seja mantida em seu diretório pessoal.
Use seu editor favorito (pico, vi, emacs, etc) para editar ~ / .crontab e use o crontab para aplicá-lo a / var / spool / crontabs. Como isso:
Se você gosta de pseudônimos, pode criar um para executar.
fonte