Como o /tmp
diretório é limpo? É automático? Em caso afirmativo, com que frequência é limpo?
filesystem
tmp
Olivier Lalonde
fonte
fonte
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
no / etc / fstab.Respostas:
Nota! Esta resposta está desatualizada desde pelo menos o ubuntu 14.04. Veja outras respostas para a situação atual e, se elas se mostrarem corretas, faça um voto positivo. Também postar comentário para que eu possa colocar o link aqui para a resposta correta atual.
Para 14.04, consulte https://askubuntu.com/a/759048/1366
Para 16.10, consulte https://askubuntu.com/a/857154/453746
Antiga resposta de 2011:
A limpeza
/tmp
é feita pelo script inicial/etc/init/mounted-tmp.conf
. O script é executado pelo iniciante toda vez que/tmp
é montado. Praticamente isso significa em cada inicialização.O script faz aproximadamente o seguinte: se um arquivo
/tmp
tiver mais de um$TMPTIME
dia, ele será excluído.O valor padrão
$TMPTIME
é 0, o que significa que todos os arquivos e diretórios/tmp
são excluídos.$TMPTIME
é uma variável de ambiente definida em/etc/default/rcS
.fonte
O diretório é limpo por padrão a cada inicialização, porque
TMPTIME
é 0 por padrão.Aqui você pode alterar a hora no seguinte arquivo:
TMPTIME
diz com que frequência o diretório tmp deve ser limpo em diasfonte
tmpreaper
uma chance.tmpwatch
deve ser uma ferramenta apropriada.Embora a
/tmp
pasta não seja um local para armazenar arquivos a longo prazo, ocasionalmente você deseja manter as coisas um pouco mais do que na próxima vez que reiniciar , o que é o padrão nos sistemas Ubuntu. Sei uma ou duas vezes que baixei algo/tmp
durante o teste, reiniciei depois de fazer alterações e perdi os dados originais novamente. Isso pode ser alterado se você quiser manter seus/tmp
arquivos um pouco mais.Alterando a
/tmp
frequência de limpezaA configuração padrão que informa ao sistema para limpar
/tmp
na reinicialização é mantida no/etc/default/rcS
arquivo. O valor que veremos éTMPTIME
.O valor atual de
TMPTIME=0
diz excluir arquivos na reinicialização, apesar da idade do arquivo. Alterar esse valor para um número diferente (positivo) mudará o número de dias em que um arquivo pode sobreviver/tmp
.Essa configuração permite que os arquivos permaneçam
/tmp
até uma semana de idade e os exclua na próxima reinicialização. Um número negativo (TMPTIME=-1
) indica ao sistema para nunca excluir nada/tmp
. Provavelmente, isso não é algo que você deseja, mas está disponível.fonte
/etc/init/mounted-temp.conf
, mas tem a linhastart on mounted MOUNTPOINT=/tmp
que me faz pensar que não é aplicável./var/tmp
vez de/tmp
.Estou verificando isso no Ubuntu 16.10. Posso certificar que a edição de / etc / default / rcS não tem mais efeito algum e os arquivos em tmp são eliminados pela reinicialização, independentemente do que você colocar nesse arquivo. Como outros mencionam, o tmpreaper não é mais usado.
Eu acho que a resposta certa é que o Ubuntu 16.10 tem uma nova configuração. Há uma pasta /etc/tmpfiles.d, documentada na página de manual "tmpfiles.d". Nessa pasta, deve-se colocar um arquivo de configuração para controlar se o / tmp deve ser apagado. Isto é o que estou fazendo para impedir que as reinicializações apaguem arquivos no / tmp, a menos que tenham 20 dias:
Substitua "20d" por "-" se você nunca quiser excluir os arquivos. Este é o meu melhor esforço, essa página de manual é quase impenetrável com detalhes.
A vantagem da nova configuração é que um limpador de arquivos ainda pode ser executado, mesmo que o sistema não seja reinicializado (como no caso de um servidor sempre ativo). Essa é uma grande vantagem, eu acho.
fonte
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
No Ubuntu 14.04, isso é feito por
tmpreaper
, chamado diariamente pelo cron (from/etc/cron.daily
). O programa pode ser configurado via/etc/default/rcS
e/etc/tmpreaper.conf
.fonte
Antes de 14.04:
É limpo toda vez que você reinicia.
fonte
tmpreaper
.Em um
systemd
Ubuntu (15.10 e mais recente), isso é feito pelo systemd, usando osystemd-tmpfiles-clean
serviço e o timer:E
Então,
systemd-tmpfiles-clean
é executado no desligamento, e uma vez por dia, caso contrário. Os arquivos que ele limpa podem ser estendidos usando os/etc/tmpfiles.d
mencionados em outra resposta .Você pode alterar o comportamento do timer usando
systemctl edit systemd-tmpfiles-clean.timer
e usando váriasTimer
opções de configuração do systemd (consulteman 5 systemd.timer
).fonte
/tmp
ainda não está limpo. e eu preciso que seja limpo. até o início manualsudo systemctl start systemd-tmpfiles-clean
não funciona. Alguma idéia do porquê?Em um de nossos servidores executando o Ubuntu, temos um script para remover arquivos em / tmp e ele é executado todas as noites.
O script é:
Apenas salve o conteúdo acima em um arquivo chmod 775 e crie uma entrada cron para executá-lo. Como este é um servidor web, não queremos reiniciá-lo por razões óbvias.
fonte
ln -s /usr /tmp/kaboom
ou mesmoln -s /* /tmp/
...