[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по управлению системой: Операционная система и устройства


Действия при переполнении диска

Переполнение диска происходит при записи слишком большого числа файлов в выделенное пространство. Это может произойти в том случае, когда запущенные процессы создают много ненужных файлов. Устранить неполадку можно с помощью следующих процедур:

Предварительные требования

Для удаления процессов, принадлежащих другим пользователям, необходимы права доступа root.

Идентификация процессов, вызвавших неполадки

  1. Для определения состояния процессов и выявления процессов, вызвавших ошибку, введите следующую команду:

    ps -ef | pg 
    

    Команда ps показывает сведения о состоянии процесса. Флаг -e означает, что должна быть показана информация о всех процессах (кроме процессов ядра), а флаг -f указывает, что в списке процессов должны быть показаны имена команд и значения параметров, с помощью которых был запущен процесс. Команда pg показывает информацию по одной странице, чтобы большой объем информации не прокручивался на экране слишком быстро.

    Найдите системные или пользовательские процессы, использующие слишком большой объем системных ресурсов, таких как время CPU. Среди системных процессов это могут быть процессы sendmail, routed и lpd.

  2. Для определения пользовательских процессов, интенсивно использующих CPU, введите следующую команду:

    ps -u
    

Принудительное завершение процесса

  1. Для приостановки или завершения процесса, вызвавшего ошибку, введите следующую команду:

    kill -9 1182
    

    В этом примере команда kill завершает работу процесса с номером 1182.

  2. Удалите файлы, созданные процессом, с помощью следующей команды:

    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

При переполнении каталога /usr файловой системы выполните следующие действия:

  1. Удалите файлы протокола принтера с помощью команды

    rm -f /usr/adm/lp-log
    rm -f /usr/adm/lw-log
    
  2. Удалите файлы протокола uucp с помощью команды

    rm -f /usr/spool/uucp/LOGFILE
    rm -f /usr/spool/uucp/SYSLOG
    rm -f /usr/spool/uucp/ERRLOG
    
  3. Удалите ненужные файлы из каталогов /tmp и /usr/tmp. Рекомендуется выполнять такую очистку не реже одного раза в неделю. Например, введите:

    find /tmp -type f -atime +7 -exec rm -f {} \;
    find /usr/tmp -type f -atime +7 -exec rm -f {} \;
    
  4. Если вам не нужны файлы учета, удалите строки из файла /var/adm/wtmp. Вы можете уменьшить размер файла /var/adm/wtmp, удалив из него старые записи. Двоичный файл wtmp необходимо предварительно преобразовать в формат ASCII. Для того изменения файла /var/adm/wtmp выполните следующие действия:
    1. Преобразуйте файл wtmp из двоичного формата в формат ASCII, создав файл с именем wtmp.new:

      /usr/sbin/acct/fwtmp < /var/adm/wtmp >
      wtmp.new
      
    2. Отредактируйте файл wtmp.new, удалив из него ненужные строки с помощью команды

      vi wtmp.new
      
    3. Преобразуйте файл wtmp.new из формата ASCII в двоичный формат и присвойте ему имя wtmp с помощью следующей команды:

      /usr/sbin/acct/fwtmp -ic < wtmp.new >
      /var/adm/wtmp
      

Действия при переполнении пользовательской файловой системы

При переполнении пользовательской файловой системы выполните следующие действия:

  1. Удалите устаревшие файлы резервных копий и файлы дампа. В приведенном ниже примере удаляются все файлы *.bak, .*.bak, a.out, core, * и ed.hup.

    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
    
  2. Для предотвращения переполнения диска запускайте команду skulker как часть процесса cron для удаления ненужных и временных файлов.

    Команда skulker удаляет файлы из каталога /tmp, файлы, созданные до указанной даты, файлы a.out, файлы ed.hup и файлы дампа. Эту команду можно выполнять ежедневно как часть процедуры учета, запускаемой командой cron в часы малой загрузки системы (если система учета запущена).

    Программа-демон cron запускает команды оболочки в указанное время. В соответствии с инструкциями, приведенными в файлах crontab, можно настроить периодический запуск любых команд, например, команды skulker. Обработка файлов crontab запускается командой crontab. Для изменения файла crontab необходимы права доступа root.

    Дополнительная информация о создании процесса cron, а также о редактировании файла crontab приведена в разделе Установка системы учета ресурсов.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]