Os arquivos em / tmp são limpos pelo sistema operacional?

2

Eu tenho um script que gera arquivos de log que coloco em /tmp Eu corro no Linux RedHat, Ubuntu, Solaris e AIX.

Eu estou querendo saber que eu tenho que limpar os logs periodicamente por mim (por exemplo, após 14 dias) ou pode ser o sistema operacional limpa por si só, uma vez que reside em /tmp ?

    
por user1762109 27.02.2014 / 08:10

3 respostas

3

Se o seu sistema operacional não limpar / tmp automaticamente, instale tmpreaper ou tmpwatch . Eles podem ser configurados para serem executados como cronjobs, então a limpeza é automática. Eles são facilmente configurados para seguir suas preferências sobre o que manter, o que limpar e quando limpá-lo.

Em um sistema parecido com o debian, execute apt-get install tmpreaper . O arquivo de configuração é normalmente /etc/tmpreaper.conf .

Como você pode descobrir se um deles já está instalado? Uma maneira é executar locate tmpreaper e locate tmpwatch e ver o que aparece. Se eles estiverem instalados, você poderá verificar seus arquivos de configuração (em /etc/ ). Com sistemas parecidos com o debian, é necessário fazer uma alteração manual em /etc/tmpreaper.conf para permitir que tmpreaper seja executado sob cron .

Normalmente, todos os arquivos em /tmp são excluídos a cada reinicialização. Conseqüentemente, programas como tmpreaper são necessários somente em máquinas com tempos de funcionamento longos.

    
por 27.02.2014 / 08:29
1

Você pode verificar com df -T e ver se /tmp está montado como um sistema de arquivos separado. Se não for, há uma grande possibilidade de que não seja eliminado automaticamente. Por exemplo, na minha caixa do CentOS 7.1, o / tmp é apenas uma parte do sistema de arquivos raiz (/) e contém arquivos antigos antes da última reinicialização.

No meu laptop df -T me dá:

Filesystem           Type        1K-blocks       Used  Available Use% Mounted on
dev                  devtmpfs      1912020          0    1912020   0% /dev
run                  tmpfs         1919840       1008    1918832   1% /run
/dev/mapper/vg0-root ext4        118698260   89524160   23121444  80% /
tmpfs                tmpfs         1919840     168044    1751796   9% /dev/shm
tmpfs                tmpfs         1919840          0    1919840   0% /sys/fs/cgroup
tmpfs                tmpfs         4194304        168    4194136   1% /tmp
/dev/sda1            ext4            95054      59743      28143  68% /boot
tmpfs                tmpfs          383968        104     383864   1% /run/user/1000

Todos os tmpfs estão na RAM e limpos em uma reinicialização.

Se /tmp não estiver montado separadamente, você poderá adicionar uma entrada /etc/fstab como esta:

tmpfs /tmp tmpfs nodev,nosuid,size=nG 0 0

Isso criará um sistema de arquivos RAM n Gigs em tamanho. Certifique-se de colocar um número menor do que a quantidade de memória disponível.

Como uma alternativa para user3163621 , você pode simplesmente colocar uma entrada crontab como esta:

@reboot rm -rf /tmp/* /tmp/.*

    
por 18.09.2016 / 15:38
0

Linux, Ubuntu e Solaris irão limpar seu / tmp na reinicialização. Mas não o AIX, o arquivo em / tmp permanecerá lá.

Você pode configurar um cronjob para fazer isso por você como root

0 1 * * * find /tmp -atime -14 -exec rm {} \;

Às 01:00, todos os dias, ele localizará e removerá os arquivos que foram acessados pela última vez há 14 dias. ou você pode colocar -mtime -14 para os últimos arquivos modificados.

    
por 11.06.2014 / 03:02