Назад | Перейти на главную страницу

Диск Linux-сервера заполнен

Я использую WinSCP для загрузки страниц своего сайта на удаленный сервер Ubuntu Linux (хостинг VPS xen). Когда я копирую файл, он записывается на сервере с размером = 0. Когда я проверил свободное место на диске: df -h Я получил: / dev / xvda с Avail = 0% и Used = 100%. Я попытался проверить удаленные файлы с помощью: lsof | grep '(deleted)' Но команда lsof не найдена. Что мне делать дальше?

Я попробовал: sudo du -h --max-depth = 1 ./ И, перебирая дерево, обнаружил, что /srv/www/mysite.com/logs/access.log имеет размер 13 ГБ !!!! Я удалил access.log с помощью rm access.log. Но df -h steel reports / dev / xvda 0% avail ... Что еще делать, чтобы окончательно удалить файл ?????

Теперь lsof должен сообщить об удаленном файле. Вы должны отправить сигнал HUP на http-сервер, используя

/etc/init.d/apache2 reload

В будущем избегайте этого, отредактировав /etc/logrotate.d/apache2 (введите правильный путь для журналов)

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

du -hsx * | sort -rh | head -10

Команда работает в той директории, откуда вы ее запустите. Он показывает 10 самых больших файлов / каталогов.

Используйте его для каталога, в котором у вас есть подозрения, что файлы там слишком большие, т.е. / var / log / ваш домашний каталог.

Если вы ничего не нашли, возможно, с вашим жестким диском что-то не так.

ОБНОВЛЕНИЕ: если у вас установлен perl, вы можете использовать этот лайнер:

du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf ("%6.1f\t%s\t%25s %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),$2);}'

/ dev / xvda - это путь к диску. Разделы должны заканчиваться некоторым номером (например, / dev / xvda1). Отметьте df в последнем столбце, если это ваш корневой или домашний раздел. «Avail = 0%» означает, что у вас, вероятно, закончилось свободное место. Проверьте, что занимает много места, используя

du -sm <path>

Для вашего домашнего каталога это будет

du -sm $HOME/*

Команда lsof выглядит так, как будто она перечисляет только файлы, которые собираются удалить (потому что они уже используются). Возможно, lsof существует, но не на вашем пути - попробуйте найти его.

Ты мог:

  • Удалите ненужные файлы: попробуйте найти большие директории или файлы - см. команду 'du'.
  • попросите больше места у провайдера