Переполнение диска происходит при записи слишком большого числа файлов в выделенное пространство. Это может произойти в том случае, когда запущенные процессы создают много ненужных файлов. Устранить неполадку можно с помощью следующих процедур:
Для удаления процессов, принадлежащих другим пользователям, необходимы права доступа root.
ps -ef | pg
Команда ps показывает сведения о состоянии процесса. Флаг -e означает, что должна быть показана информация о всех процессах (кроме процессов ядра), а флаг -f указывает, что в списке процессов должны быть показаны имена команд и значения параметров, с помощью которых был запущен процесс. Команда pg показывает информацию по одной странице, чтобы большой объем информации не прокручивался на экране слишком быстро.
Найдите системные или пользовательские процессы, использующие слишком большой объем системных ресурсов, таких как время CPU. Среди системных процессов это могут быть процессы sendmail, routed и lpd.
ps -u
kill -9 1182
В этом примере команда kill завершает работу процесса с номером 1182.
rm файл1 файл2 файл3
При удалении активного файла из файловой системы выделенные ему блоки не освобождаются до тех пор, пока не будет удален последний указатель open (в результате закрытия файла процессом или в результате завершения самого процесса, открывшего файл). Если процесс записывает данные в файл, то при удалении этого файла выделенное ему дисковое пространство не будет освобождено до завершения процесса.
Для освобождения дискового пространства, выделенного активному файлу, без завершения процесса, перенаправьте в это файл вывод другой команды. При перенаправлении файл будет усечен, а блоки памяти освободятся. Например:
$ ls -l total 1248 -rwxrwxr-x 1 web staff 1274770 Jul 20 11:19 datafile $ date > datafile $ ls -l total 4 -rwxrwxr-x 1 web staff 29 Jul 20 11:20 datafile
Вывод команды date заменяет предыдущее содержимое файла datafile. Указанное число блоков усеченного файла отражает изменение размера файла с 1248> до 4. Если процесс продолжит запись данных в новый файл, то при следующем вызове команды ls может быть показана такая информация:
$ ls -l total 8 -rxrwxr-x 1 web staff 1278866 Jul 20 11:21 datafile
Размер файла datafile отражает объем данных, добавленных процессом, но число выделенных блоков невелико. Это значит, что в файле datafile есть свободное пространство. Свободное пространство файла представляет собой область файла, для которой не выделены блоки дискового пространства.
При переполнении каталога /usr файловой системы выполните следующие действия:
rm -f /usr/adm/lp-log rm -f /usr/adm/lw-log
rm -f /usr/spool/uucp/LOGFILE rm -f /usr/spool/uucp/SYSLOG rm -f /usr/spool/uucp/ERRLOG
find /tmp -type f -atime +7 -exec rm -f {} \; find /usr/tmp -type f -atime +7 -exec rm -f {} \;
/usr/sbin/acct/fwtmp < /var/adm/wtmp > wtmp.new
vi wtmp.new
/usr/sbin/acct/fwtmp -ic < wtmp.new > /var/adm/wtmp
При переполнении пользовательской файловой системы выполните следующие действия:
find / \( -name "*.bak" -o -name core -o -name a.out -o \ -name "...*" -o -name ".*.bak" -o -name ed.hup \) \ -atime +1 -mtime +1 -type f -print | xargs -e rm -f
Команда skulker удаляет файлы из каталога /tmp, файлы, созданные до указанной даты, файлы a.out, файлы ed.hup и файлы дампа. Эту команду можно выполнять ежедневно как часть процедуры учета, запускаемой командой cron в часы малой загрузки системы (если система учета запущена).
Программа-демон cron запускает команды оболочки в указанное время. В соответствии с инструкциями, приведенными в файлах crontab, можно настроить периодический запуск любых команд, например, команды skulker. Обработка файлов crontab запускается командой crontab. Для изменения файла crontab необходимы права доступа root.
Дополнительная информация о создании процесса cron, а также о редактировании файла crontab приведена в разделе Установка системы учета ресурсов.