É seguro rm -rf / tmp / *?


29

Isso é algo que eu costumava fazer muito no Windows, mas depois do meu recente fiasco , quero ter certeza. É seguro fazer

sudo rm -rf /tmp/*

?


É um servidor em execução ou uma máquina de desktop com desligamento diário?
usuário desconhecido

Gostaria de perguntar por que você deseja excluir arquivos em / tmp? É porque está enchendo ou por motivos de privacidade? Se for um problema de espaço, pode ser devido a um aplicativo mal comportado ou talvez seja necessário que ele esteja em uma partição maior. Se houver privacidade, existem outras alternativas, como o uso de sistemas de arquivos criptografados que você pode querer considerar.
Rob

Pode causar vários problemas no seu sistema, mas principalmente funcionará.
peterh diz restabelecer Monica 30/04

Respostas:


19

Em geral, não.

Se estiver cheio de lixo, você pode querer olhar para o que o software não está limpando depois de si próprio.

Você também pode usar o find para identificar arquivos que não foram modificados ou acessados ​​há muito tempo que provavelmente são seguros para excluir.


9
Concorde com o coro de 'não' aqui e o adendo que a maioria das distribuições linux limpa automaticamente /tmp/na inicialização. Embora isso não ajude necessariamente se estivermos falando de um servidor EVER que não é reinicializado aqui, uma possibilidade pode estar sendo executada a find ./ -type f -atime 14 -exec rm {} \; cada semana ou mais para excluir qualquer arquivo simples que não tenha sido acessado nas últimas duas semanas. ..
Shadur 13/04

find ./ -type f -atime 14 -deletecom gnu-find
usuário desconhecido

@user, é claro que isso pressupõe que /tmpnão está usando os padrões atuais do kernel, que relatimesó são atualizados quando o arquivo é modificado, ou noatime. Nesse caso, atimenão será remotamente útil.
Xenoterracide

8

A verdadeira resposta é - depende. / tmp pode ser usado por aplicativos que exigem que arquivos de bloqueio ou logs temporários estejam presentes para serem executados ou não. Pode haver links simbólicos lá ... não sei para quê, mas é sempre possível.

Você realmente deve olhar o que está lá antes de decidir removê-lo. fazer um rf -rf * em qualquer coisa é inerentemente perigoso.


3
No meu sistema, os arquivos de log vão para / var / log, os arquivos de bloqueio para / var / lock.
usuário desconhecido

3
@ usuário claro, para daemons do sistema ... isso não significa necessariamente que não há bloqueios ou logs para um aplicativo de usuários /tmpporque o usuário normal não pode gravar /var/log|lockEu tenho um script de shell que grava um bloqueio em/tmp
xenoterracide

7

Não. Por exemplo, se você tem um banco de dados MySQL em execução no seu computador que mata seu soquete, ou se você está usando o emacs como um servidor que mata o processo do servidor. Existem muitos outros casos em que não é seguro remover esses arquivos. A melhor coisa a fazer é escrever um script que verifique a data do arquivo e o remova apenas se for antigo.


Pergunta rápida quando você diz "isso matará seu soquete", o que você pergunta por 'soquete'?
Qasim


2

Não.

Mas como você pode usar um ramdisk para o diretório / tmp, ele ficará vazio após cada reinicialização do sistema. E, como efeito colateral, seu sistema pode se tornar um pouco maior rapidamente.

O Google tem muita informação sobre tmpfs e / ou ramfs.


Não é comum limpar / tmp automaticamente na reinicialização? Gentoo faz, e eu acho que o Ubuntu faz, mas tem sido um tempo desde que eu usei-o
Michael Mrozek

Não, eu não acho que as distribuições derivadas do Debian como o Ubuntu o façam (agora mesmo). Mas é bem fácil adicionar isso, se você quiser.
31411 Johan Johan

O Ubuntu Matty (ou como a versão atual é chamada) faz. Mas se você não reiniciar sua máquina regularmente, isso não acontecerá.
Rob

Ok, não verifiquei a corrente. Estou usando a faixa LTS agora.
Johan

O Ubuntu faz, e todos os Linux que eu testei antes: Knoppix, Amendoim, Dia das Bruxas, Red Hat, SuSe. Por que isso tornaria o sistema mais rápido? O que exatamente seria mais rápido? Cálculos, acesso ao disco, rede, inicialização?
usuário desconhecido

-4

Minha sugestão é renomear sua pasta tmp primeiro para ver o que está sendo afetado por este diretório. Renomeie-o de "tmp" para "old_tmp". Além disso, crie uma nova pasta vazia com o nome "tmp" porque alguns processos de instalação ou sistema exigem que essa pasta crie alguns arquivos dentro deste diretório, como arquivos de log. Siga estas etapas para remover com segurança a data tmp.

1- Renomeie o diretório "tmp" existente como "old_tmp". 2- Crie um novo diretório "tmp" vazio. 3- Atribua toda a permissão como "0777" a este diretório recém-criado, para que o sistema / instalação possa ter permissão para criar / colocar o log e outros arquivos dentro deste diretório. 4- Execute o sistema e os aplicativos para garantir que tudo esteja funcionando bem e funcionando normalmente. Mantenha em observação por 2-3 dias. 5- Se nada for afetado devido à renomeação do diretório "tmp" para "old_tmp", você poderá excluir o diretório "old_tmp".

Nota: Se alguma coisa que está causando problema for devida à renomeação do diretório "tmp" para "old_tmp", deixe esse diretório voltar ao nome "tmp" original.


2
Esta é uma muito má ideia. Existem muitos utilitários de shell padrão nos quais os arquivos temporários são gravados /tmpe que começam a falhar assim que você renomeia o original /tmp. Observe também que o /tmpdiretório deve ter permissões específicas (conjunto de bits fixos, por exemplo).
Kusalananda

Por favor, leia atentamente o que eu disse: Você pode ter muitos utilitários de shell padrão que gravam arquivos temporários no diretório "/ tmp". Diretório "tmp".
A.Aleem11

1
Sim, e você disse que as permissões deveriam ser 0777quando de fato deveriam 1777.
Kusalananda
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.