Como limpar / tmp?

52
[email protected]:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        67G   58G  5,2G  92% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,5G   12K  1,5G   1% /dev
tmpfs           303M  1,2M  302M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            1,5G  348K  1,5G   1% /run/shm
none            100M   80K  100M   1% /run/user
overflow        1,0M  1,0M     0 100% /tmp
overflow        1,0M  1,0M     0 100% /tmp

Como limpar /tmp ?

    
por Rizhas 21.11.2013 / 08:59

7 respostas

74

/ tmp deve ser limpo na reinicialização, mas se você não reinicializar (o que é normal para servidores), a limpeza não acontecerá

find /tmp -ctime +10 -exec rm -rf {} +

excluirá todos os arquivos e pastas com mais de 10 dias. você pode querer adicioná-lo ao cron diário.

UPDATE

Em comentários abaixo @sfussenegger recomenda um formato ligeiramente diferente deste comando que pode ser mais adequado às suas necessidades e ao sistema que você está operando em.

sudo find /tmp -type f -atime +10 -delete

Aqui o comando está usando sudo para se certificar que tudo é excluído (ou você pode executá-lo como root), operando em arquivos que não foram acessada por mais de 10 dias e apenas exclui arquivos, não pastas . Ele também usa -delete para evitar ter que executar o comando rm

    
por Andrei R 15.04.2015 / 01:29
30

Você pode assumir que qualquer coisa dentro de um diretório tmp (/ tmp / / usr / tmp etc) pode ser excluída. ANTES de você começar a apagar, pare todos os programas e serviços que estiver usando, pois / tmp / pode ser usado por programas para armazenar temporariamente informações para aquela sessão. Então, faça um sudo service mysql stop e sudo service apache2 stop se você tiver um mysql e / ou apache em execução. O nome dos arquivos no diretório / tmp / na maioria das vezes dá uma pista sobre a qual programa eles pertencem.

Então, a partir da linha de comando ...

cd /tmp/
pwd
sudo rm -r *

irá esvaziar o diretório / tmp / e remover todos os arquivos e subdiretórios. Tenha cuidado para digitá-lo corretamente. O comando pwd não é necessário, mas deve mostrar /tmp .

Se você quiser interativamente (então você precisa confirmar a exclusão):

cd /tmp/
sudo rm -ri *

Também vale a pena notar que uma reinicialização será limpa / tmp, como mostrado aqui: Como o diretório / tmp é limpo? Então, se / tmp / estiver cheio de arquivos após a reinicialização, você precisará investigar de onde esses arquivos são originários.

Eu também gostaria de afirmar que 1 Mb para / tmp não é muito espaço. Você está usando o MySQL? Veja link sobre como corrigir isso (obrigado @drc)

    
por Rinzwind 21.11.2013 / 09:10
8

O programa tmpreaper pode ser usado para limpar / tmp periodicamente. Este programa exclui tudo o que não foi acessado em um determinado período de tempo, normalmente duas semanas. Para que isso funcione corretamente, o sistema de arquivos no qual ele está deve ter a opção atimes ativada. Se você usa um tmpfs , o que parece que você está fazendo, então você deve estar bem.

É claro que a reinicialização também limpa / tmp , mas isso seria entediante.

    
por Simon Richter 21.11.2013 / 15:00
7

O diretório /tmp significa temporário.

Este diretório armazena dados temporários. Você não precisa excluir nada dele, os dados contidos nele são excluídos automaticamente após cada reinicialização.

Ainda assim, se você quiser excluir os dados presentes, use

sudo rm -r /tmp/*

A exclusão não causará problemas, pois são arquivos temporários.

    
por Tarun 21.11.2013 / 09:11
4

Tenha cuidado antes de executar um comando como rm -r ./* . Depois de executá-lo, será muito difícil ou impossível recuperar quaisquer dados.

Todos serão removidos. Verifique se o diretório no qual você está excluindo está correto.

Existe uma maneira mais segura de lidar com as coisas.

# sudo rm -r /tmp/*

Dessa forma, quando você acidentalmente executar esse comando de dentro do seu shell history , ele não excluirá os arquivos incorretos (a menos que você os mantenha em /tmp ).

    
por Mark Yisri 25.01.2017 / 11:19
2

O diretório /tmp foi limpo por padrão a cada inicialização, porque TMPTIME é 0 por padrão.

    
por Avinash Raj 21.11.2013 / 09:10
1

Se sua montagem “/ tmp” em um sistema de arquivos linux é montada como overflow (geralmente com tamanho de 1MB), isso provavelmente se deve a você não especificar “/ tmp” como sua própria partição e seu sistema de arquivos raiz é preenchido e “/ tmp ”foi remontado como um fallback. Para corrigir isso depois de limpar o espaço, desmonte o fallback e ele deve remontar ao ponto original:

sudo umount overflow

se o dispositivo estiver ocupado, use

sudo umount -l overflow
    
por ck reddy 16.11.2016 / 13:24

Tags