Encontrei este problema em uma caixa do FreeBSD hoje. O problema era que era um artefato de vi
(não vim
, não tenho certeza se vim
criaria esse problema). O arquivo estava consumindo espaço, mas não havia sido totalmente gravado no disco.
Você pode verificar isso com:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
Ele examina todos os arquivos e classificações abertos (numericamente via -n
) pela oitava coluna (chave -k8
), mostrando os últimos dez itens.
No meu caso, a entrada final (maior) ficou assim:
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
Isso significava que o processo (PID) 12345 consumia 1,46 G (a oitava coluna dividida por 1024³) de disco, apesar da falta de du
notá-lo. vi
é horrível ver arquivos extremamente grandes; até 100 MB é grande para isso. 1.5G (ou por mais grande que esse arquivo tenha sido) é ridículo.
A solução foi: sudo kill -HUP 12345
(se isso não funcionasse, eu o faria sudo kill 12345
e, se isso também falhar, o temido kill -9
entraria em ação ).
Evite editores de texto em arquivos grandes. Soluções alternativas de exemplo para escaneamento rápido:
Supondo comprimentos de linha razoáveis:
{ head -n1000 big.log; tail -n1000 big.log } |vim -R -
wc -l big.log |awk -v n=2000 'NR==FNR{L=$1;next}FNR%int(L/n)==1' - big.log |vim -R -
Supondo (s) linha (s) irracionalmente grande (s):
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -
Eles usam vim -R
no lugar do view
porque vim
quase sempre são melhores ... quando instalados. Sinta-se à vontade para canalizá-los view
ou vi -R
substituí- los .
Se você estiver abrindo um arquivo tão grande para realmente editá-lo, considere sed
ou awk
ou alguma outra abordagem programática.