Desde que atualizei o crontab do meu usuário, foi eliminado. Esta não é a primeira vez que isso acontece este ano e é uma dor restaurá-lo toda vez.
Gostaria de poder fazer o backup do crontab para o meu usuário, mas para isso preciso saber onde ele está armazenado.
cron
pacote, mas eu concordo - não é algo que deve acontecer.Respostas:
Na verdade, não é recomendado manipular esses arquivos manualmente. Por
crontab
página de manual:Os arquivos em
/var/spool
são considerados temporários / funcionais, é por isso que provavelmente são excluídos durante uma atualização, embora uma análise mais detalhada doscron
scripts de atualização do pacote possa esclarecer isso.De qualquer forma, é sempre uma boa prática fazer backup das entradas do cron ou mantê-las em um arquivo no diretório inicial.
Suponho que você esteja usando
crontab -e
para criar arquivos crontab em tempo real. Nesse caso, você pode obter uma "cópia" do seu arquivo crontab fazendo issocrontab -l
. Canalize isso para um arquivo para obter um "backup":Em seguida, você pode editar esse arquivo my-crontab para adicionar ou modificar entradas e, em seguida, "instalá-lo", fornecendo-o ao crontab:
Isso faz a mesma verificação de sintaxe que
crontab -e
.fonte
crontab -l
é mais fácil do que passar/var/spool/cron/crontabs/$USER
principalmente por causa das permissões bizarras nesse arquivo.iptables-save
cron. Bom .../var/spool/cron/crontabs
é útil quando você deseja organizar ou examinar os crontabs de vários usuários.sudo grep -rHin "$string" /etc/cron*
(onde corda pode ser um comando comodocker
,lftp
,iptables
, etc. É uma boa idéia para verificar crontabs usuário também Isso é o que me levam a este Q & A..sudo grep -rHin "$string" /etc/cron* /var/spool/cron*
Sua
/var/spool/cron/crontabs
pasta interna é armazenada sob o nome de usuário.fonte
Finalmente descobri por que minhas instalações de crontabs e Postfix continuavam quebrando após a inicialização. É uma razão realmente estúpida, mas ...
Eu havia
/var/spool
montado como umtmpfs
drive de RAM.Parece idiota e é, mas eu segui um dos velhos ajustes do SSD para prolongar a vida do meu SSD. Ao fazê-lo, eu cegamente montado
/tmp
,/var/tmp
e/var/spool
comotmpfs
sem pensar nas repercussões. Eu pensei que/var/spool
era/proc/
ou não/run/
e que só foi útil durante a duração da sessão. Eu estava claramente errado.fonte
/tmp
como tmpfs, mas não/var/tmp
ou/var/spool
./tmp
é usado para armazenamento temporário que pode ser perdido na reinicialização./var/tmp
é usado para armazenamento temporário que permanecerá após uma reinicialização. E, como você descobriu,/var/spool
é para os dados serem processados, que também permanecerão após uma reinicialização.Para listar todos os trabalhos cron de todos os usuários em seu sistema:
Uma alternativa para o seu problema seria colocá-los na pasta cron.d e especificar o usuário apropriado por cron, como no exemplo:
fonte
crontab -u
está sendo executado no seu sistema atual.while read user
loop, para lidar com o caso em que o nome de usuário contém espaços, mas aparentemente isso não é um problema. Conjunto muito limitado de caracteres de nome de usuário.