O que está criando arquivos / var / tmp / sort *?

2

Às vezes, no meu servidor Debian Linux, eu encontrei um monte de arquivos tipo * (sort0ylf0b, sort8KXDHC, sortCoMKVq) com mais de 30MB cada. Quem cria esses arquivos em / var / tmp?

Eu tento google mas nada.

Alguma ideia? Obrigado.

    
por Matteo Alessani 17.06.2011 / 08:49

3 respostas

7

Não sei o que causaria isso. Se os arquivos ainda estiverem abertos, você poderá ver que processo eles abriram usando o utilitário 'lsof' (que significa "list open files"):

lsof /var/tmp/sort*

Se algum desses arquivos estiver aberto no momento, você verá alguma saída parecida com essa (exceto que executei lsof em / tmp / *):

COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
xmms2d  28523 jonhall    3u  unix 0xffff880025052100      0t0 2272384 /tmp/xmms-ipc-jonhall
xmms2d  28523 jonhall   11u  unix 0xffff880194d7de00      0t0 2272401 /tmp/xmms-ipc-jonhall

A única informação que realmente interessa na saída é o PID. Tente isto:

ps 28523  # Replace the number with the PID from your own output, obviously

E você deve ver o culpado:

  PID TTY      STAT   TIME COMMAND
28523 ?        SLl   11:30 /usr/bin/xmms2d --status-fd=4

No meu caso, xmms2d é o que tem os arquivos abertos.

Isso tudo depende do fato de você ter uma saída útil. Caso contrário, tente executar o mesmo comando lsof várias vezes. Se esses arquivos temporários tiverem 30MB de tamanho, levará um pouco de tempo (talvez alguns segundos?) Para escrevê-los, portanto, se você puder "pegá-lo em flagrante", lsof deverá informar o que você precisa saber. Claro, isso tudo depende da frequência com que esses arquivos estão sendo gravados também.

Boa sorte!

    
por 17.06.2011 / 09:04
2

Esses arquivos provavelmente foram criados devido a uma execução periódica de updatedb (para o comando locate ). Na verdade, eu descobri o mesmo problema no cygwin, onde /var/tmp tinha mais de 5 GB de arquivos antigos que remontam há vários anos. (no meu sistema, updatedb é um script que chama mktemp , que usa o que quer que $TMPDIR esteja atualmente definido; updatedb define isso como /var/tmp )

O /var/tmp dir tradicionalmente não é excluído na reinicialização, enquanto /tmp seria; da mesma forma, /var/tmp é geralmente uma partição maior com backup de disco, enquanto /tmp pode ser apenas memória (fazendo com que updatedb falhe ou fique sem espaço (memória) se for usado.) Essas suposições podem não ser verdadeiras para Seu sistema; no caso de "corrigir" updatedb , você poderá (dependendo da plataforma) atualizar /etc/updatedb.conf para gravar em /tmp em vez de /var/tmp . (Ou execute um cron job que limpe periodicamente os antigos arquivos /var/tmp/sort* .)

Para referência, veja este erro debian (fechado como "não é um bug" , uma vez que é uma mudança de configuração).

    
por 14.03.2013 / 21:08
1

Quem é o proprietário desses arquivos? Às vezes isso pode te dar uma dica.

Em geral, esses arquivos são gerados se sort tiver que vasculhar um arquivo grande. Ele usa esses arquivos como arquivos temporários durante a classificação de alguns dados massivos.

    
por 17.06.2011 / 09:07

Tags