Usando um cronjob para limpar / tmp

11

É seguro usar um script bash e um cronjob para esvaziar /tmpautomaticamente ou devo fazer isso de maneira diferente?

Jochem Kuijpers
fonte

Respostas:

13

/tmpé limpo em todas as reinicializações do sistema, mas em sistemas que não podem ser reinicializados com freqüência e, principalmente, se o único objetivo é limpar /tmpum script, pode ser feito para limpá-lo.

Nenhum processo deve manter dados importantes lá, mas é importante que você possa limpar /tmpsem interromper nenhum processo no qual os dados são gravados tmp.

Eu recomendo usar tmpreaperpara isso.

Você pode instalá-lo com sudo apt-get install tmpreaper.

Na página do manual:

O tmpreaper pesquisa e remove recursivamente arquivos e diretórios vazios que não foram acessados ​​por um determinado número de segundos. Normalmente, é usado para limpar diretórios que são usados ​​para armazenamento temporário, como "/ tmp". Por favor, leia a seção AVISOS deste manual.

Uso normalmente envolve invocando tmpreaperno /tmpcom o argumento de cada vez spec. O argumento de especificação de tempo pode ser qualquer coisa dpor dias, hhoras, mminutos ou ssegundos.

Por favor, use --testo comando dry run e obtenha uma saída dos resultados antes de executar o comando. Com isso, você terá uma idéia do que será excluído antes de efetivar as alterações no sistema de arquivos.

Bruno Pereira
fonte
Obrigado! Para responder totalmente à minha pergunta, você pode me explicar por que isso é melhor do que usar uma simples remoção recursiva?
Jochem Kuijpers
1
Não é, é apenas mais simples de usar e os argumentos usados ​​são mais compreensíveis. Um simples rm -rfem uma lista de arquivos retornados por findfaria o trabalho também. Esta é "apenas outra maneira", nem mesmo dizendo que é a melhor, apenas a que eu uso nos servidores que configuro.
Bruno Pereira
tmpreaperparece ser uma boa ferramenta, vale a pena usar --teste --showdeletesao testar.
RichVel 28/09
3

Tente adicionar um cronjob que execute

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Isso excluiria todos os arquivos com mais de 5 dias.

turbophi
fonte