Jak mogę sprawdzić, co zajmuje miejsce na dysku w / tmp?

8

Pracuję na serwerze zewnętrznym - po prostu robię tam trochę interfejsu API. Dzisiaj kiedy chciałem użyć api php zwrócił następujący błąd:

Unknown: write failed: No space left on device (28)

Doszedłem więc do wniosku, że tmp jest pełny:

~# df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       102G   97G     0 100% /

Więc chyba muszę wyczyścić trochę śmieci w tmp - ale przede wszystkim chciałbym wiedzieć, co powoduje problem, to znaczy, co zajmuje tyle pamięci w tmp? Może coś jakoś zalewa tmp reż? Nie jestem ekspertem w administrowaniu systemem, piszę tylko web-api ... Czy to normalne, że rozmiar tmp jest przekroczony? Może to się czasem zdarza?

Wynik polecenia:

du -sh /tmp/* | sort -h
0       /tmp/tmpEZIyDT
0       /tmp/unity_support_test.0
4.0K    /tmp/amazoncookie.txt
4.0K    /tmp/at-spi2
4.0K    /tmp/filewhHOLH
4.0K    /tmp/keyring-b3ZOTY
4.0K    /tmp/mc-domator
4.0K    /tmp/mc-root
4.0K    /tmp/pulse-2L9K88eMlGn7
4.0K    /tmp/pulse-PKdhtXMmr18n
4.0K    /tmp/ssh-thimUVhk2748
8.0K    /tmp/pulse-5N1YM8s2cT0i

Dziwne - jak rozumiem niewiele rzeczy w tmp reż ... może coś innego zajmuje tyle miejsca na dysku - jak mogę to sprawdzić?

użytkownik166241
źródło

Odpowiedzi:

9

Pierwsze polecenie wskazuje, że / tmp faktycznie znajduje się w tym samym systemie plików co / (tj. Wszystko inne). Jeśli twoja partycja główna jest pełna, być może inne rzeczy (takie jak / var / log) zajmują miejsce.

Godnym sposobem na znalezienie rzeczy jest zrobienie tego

du -sc * .[^.]* | sort -n

aby dowiedzieć się, które katalogi są duże. Następnie możesz kontynuować zapisywanie płyt cd w niższych katalogach i ponownie uruchomić polecenie, aby zawęzić listę.

Alan Shutko
źródło
1
/var/log/Przeprowadź szybkie sprawdzenie zawartości - Jeśli program wyrzuca gigabajty niemonitorowanych błędów, może to szybko zapełnić dysk.
Darth Android,
dzięki - dobrym pomysłem było poszukiwanie ukrytych plików - problemem był ogromny plik „.xsession-error” w niektórych domowych
katalogach
3

W ostatniej dystrybucji:

du -sh /tmp/* | sort -h

W starszej dystrybucji:

du -csm /tmp/* | sort -n
Gilles Quenot
źródło
Zredagowałem post - wynik pierwszego polecenia jest dziwny ...
user166241
2

Sprawdź, czy nie zabrakło i-węzłów.

# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            1236992 1236992       0  100% /
tmpfs                1007716       1 1007715    1% /dev/shm
/dev/sda1              38456      45   38411    1% /boot
Zuzu
źródło
Powyższy komentarz ma charakter poglądowy dla ppl z tym samym problemem
Zuzu
0

To właśnie mam w moim bashrc. Daje ci dobre wyobrażenie o tym, co jest „duże”, i możesz stamtąd zbadać sprawę. Użyj go, gdy mamy użytkowników, którzy lubią używać system / tmp zamiast naszej wspólnej przestrzeni tmp.

function get_big_usage () {
    echo -e "\n"
    du -ks /tmp/* | sort -nr | head
    echo -e "\n"
    du -ks /var/* | sort -nr | head
    echo -e "\n"
    du -ks /home/* | sort -nr | head
}
użytkownik757053
źródło