onde está o meu espaço em disco?

2

Recentemente tive um problema com o arquivo .xsession-errors - ele ficou muito grande (> 90 GB) e ocupou todo o espaço em disco: Como posso verificar o que leva espaço em disco em / tmp? . Limpei com o comando > .xsession-errors , mas depois de uma hora ele ficou grande novamente. Então eu deletei ( rm .xsession-errors ) - ajudou porque não foi recriado, mas novamente depois que o espaço em disco da hora desapareceu - agora não há mais .xsession-errors mas eu não sei onde fica a memória:

 df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      106640456 101223392         4 100% /
udev             8166744         8   8166736   1% /dev
tmpfs            3270224       972   3269252   1% /run
none                5120         0      5120   0% /run/lock
none             8175552       152   8175400   1% /run/shm

du -sc * .[^.]* | sort -n
0       initrd.img
0       initrd.img.old
0       proc
0       sys
0       vmlinuz
0       vmlinuz.old
4       cdrom
4       lib64
4       media
4       mnt
4       selinux
8       dev
12      srv
16      lost+found
68      tmp
1124    run
3396    lib32
5164    .rpmdb
5540    root
8888    sbin
9120    bin
17132   etc
106080  opt
116956  boot
861908  lib
3530584 usr
3821836 var
13371260        home
21859112        total

Portanto, há cerca de 100 GB usados, mas a execução de du -sc * .[^.]* | sort -n no diretório raiz encontra apenas ~ 21 GB - então, o que leva 80 GB? Como verificar isso? Eu suspeito que quando eu apaguei o arquivo '.xsession-errors' os erros foram redirecionados para outro lugar - mas onde?

lsof | ( grep -n 1 '.' ; grep '.xsession-errors' )
    gnome-ses  2748    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-set  2797    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    compiz     2825    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    vino-serv  2836    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    nm-applet  2837    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    bluetooth  2838    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-fal  2839    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    polkit-gn  2844    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    nautilus   2851    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    sh         2901    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gtk-windo  2902    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-ter  3169    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gdu-notif  3235    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    telepathy  3253    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-scr  3276    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    update-no  3508    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    deja-dup-  3964    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    update-ma 25719    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)

Você estava certo - este arquivo (.xsession-errors) ainda leva 80GB! O problema é que muitos programas usam - eu olhei na internet e muitas pessoas tiveram esse problema (bug) mas a melhor solução que encontrei é definir o trabalho da aba cron para truncar esse arquivo quando ele é muito grande ... Mas não posso acessar o arquivo agora porque ele foi excluído - tentei criar outro arquivo .xsession-errors (muito ingênuo, huh;), mas não é o mesmo arquivo ... Agora, minha pergunta é como não posso excluir esse arquivo excluído ou pelo menos restaurá-lo para truncá-lo então ...

    
por user166241 19.10.2012 / 00:10

1 resposta

8

Se você excluir um arquivo aberto, o arquivo em si não será excluído, apenas seu nome. O espaço só é recuperado quando o arquivo é fechado por qualquer processo que esteja gravando nele, portanto, o arquivo excluído continua a existir e a crescer.

Se um processo ainda tiver o arquivo aberto depois de "excluído", você poderá descobrir qual processo está sendo usado:

lsof | ( grep -n 1 '.' ; grep '.xsessions-errors' )

A saída será algo assim:

COMMAND                PID   USER  FD   TYPE  DEVICE  SIZE/OFF     NODE  NAME
problematic-program   1234  auser   4u   REG   252,2         0  1967438  /home/auser/.xsession-errors (deleted)

Para ver quanto espaço o arquivo 'excluído' está usando:

ls -l /proc/1234/fd/4

Onde 1234 é o PID mostrado acima e 4 é o FD. Depois de conhecer o programa problemático, você pode solucionar problemas de lá.

Tendo usado lsof para identificar uma lista de programas que têm .xsession-errors aberto para gravação, você precisa desligar e reiniciar cada um desses programas. Se necessário, você pode desligar e reiniciar o sistema, embora isso não seja estritamente necessário.

Se um arquivo de log crescer rapidamente, a solução ideal é descobrir por que e resolver esse problema (por exemplo, alguns recursos estão ausentes). No entanto, se você preferir, você pode redirecionar os erros para / dev / null usando o método descrito em link

    
por 19.10.2012 / 00:33