9

Я работаю на внешнем сервере - просто делаю там web-api. Сегодня, когда я хотел использовать api php вернул следующую ошибку:

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

Итак, я понял, что tmp заполнен:

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

Так что я думаю, мне нужно очистить tmp от мусора - но прежде всего я хотел бы знать, что является причиной проблемы, я имею в виду, что занимает так много памяти в tmp? Может, что-то затопляет tmp dir как-то? Я не специалист по системному администрированию, я просто пишу веб-API ... Это нормально, что размер ТМП превышен? Может быть, это просто случается время от времени?

Результат команды:

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

Странно - я так мало понимаю в tmp dir ... может быть, что-то еще занимает столько места на диске - как я могу это проверить?

4 ответа4

8

Первая команда указывает, что /tmp фактически находится в той же файловой системе, что и / (т. Е. Все остальное). Если ваш корневой раздел заполнен, возможно, что другие файлы (например, / var / log) занимают место.

Достойный способ найти вещи, чтобы сделать

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

чтобы найти, какие каталоги большие. Затем вы можете продолжить переход в более низкие каталоги и повторно выполнить команду, чтобы сузить круг.

3

На недавнем дистрибутиве:

du -sh /tmp/* | sort -h

На старом дистрибутиве:

du -csm /tmp/* | sort -n
1

Проверьте, не закончились ли иноды.

# 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
0

Это то, что у меня есть в моем bashrc. Даст вам хорошее представление о том, что такое "большой", и вы сможете оттуда провести расследование. Используйте его, когда у нас есть пользователи, которым нравится использовать system /tmp вместо нашего общего пространства 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
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .