Применение демона cron
Категория: Периодические процессы | Автор: admin | 9-11-2009, 13:41 | Просмотров: 3684

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

UNIX-системы часто поставляются с несколькими уже инсталлированными элементами crontab-файла. Если необходимо отключить эти элементы, превратите их в комментарии, вставив в начало каждой строки знак решетки. Не удаляйте такие строки: возможно, они еще пригодятся.

 

Чистка файловой системы

 

В любой UNIX-системе имеются файлы, в которых нет никакой надобности. Например, при аварийном завершении программы ядро создает файл дампа, содержащий образ адресного пространства программы. Раньше этот файл назывался core, но некоторые современные системы включают в имя файла название программы или идентификатор процесса (например, netscape.core или соге.7288). Такие файлы полезны для разработчиков программного обеспечения, но для администраторов это бесполезная трата драгоценного пространства на диске. Пользователи часто вообще не знают о назначении файлов дампа, поэтому предпочитают не брать на себя ответственность за их удаление.

Еще один источник лишних файлов — NFS, сетевая файловая система. На серверах NFS применяется специальное обозначение для защиты файлов, которые локально уничтожены, но продолжают использоваться удаленной машиной. В большинстве реализаций таким файлам присваиваются имена .nfsxxx, где xxx — числовое значение. Случается так, что об этих файлах забывают и оставляют их на диске, думая, что они удалены.

 

 

Многие программы создают в каталоге /tmp или /var/tmp временные файлы, которые по той или иной причине не удаляются. Некоторые программы, особенно текстовые редакторы, имеют привычку создавать резервные копии каждого файла, с которым они работают.

Частичное решение проблемы файлового "мусора" состоит в том, чтобы установить некую процедуру регулярного восстановления свободного дискового пространства, запуская ее (допустим, каждую ночь) с помощью демона cron. В современных системах обычно имеются встроенные средства подобной очистки, поэтому необходимо убедиться, что они соответствуют потребностям организации. Во всех приведенных ниже примерах для удаления ненужных файлов используется команда find.

find / -xdev -name core -atime +7 -exec rm -f {}   ';'

 

Эта команда уда1яет файлы с именем core, которые не использовались в течение недели. Аргумент -xdev гарантирует, что команда find будет выполнена только в корневой файловой системе и в другие файловые системы не перейдет, что очень важно в сетях, где возможно монтирование множества файловых систем с помощью NFS. Если необходимо очистить несколько файловых систем, используйте для каждой из них отдельную команду (помните, что каталог /var часто является отдельной файловой системой).

find / -xdev -atime -3 ‘(‘ -name '#*' -о -name '.#*' -о -name '*.СКР' -о -name '*~' -о -name '.nfs*'  ')' -exec rm -f (}  ‘;’

 

Эта команда удаляет не использовавшиеся в течение трех дней файлы, имена которых начинаются с префикса #, .# или .nfs либо заканчиваются символами .СКР. Часто это временные файлы и резервные файлы различных текстовых редакторов.

find /var/preserve -mtime +14 -exec rm -f {}   ';'

 

Такая команда уничтожает файлы в каталоге /var/preserve через две недели после их последней модификации. Редактор vi использует этот каталог для хранения копий файлов, которые редактировались пользователями в момент краха системы. Такие файлы сохраняются и никогда не удаляются, если только их не удалят владельцы с помощью команды vi -r имя_файла.

cd /tmp;  find .  !  -name lost+found -type d -mtime +3 -exec /bin/rm -rf ()   ';'

 

Приведенная выше команда рекурсивно удаляет все подкаталоги каталога /tmp, не модифицировавшиеся в течение 72 часов. Обычные файлы в каталоге /tmp удаляются стартовыми сценариями во время начальной загрузки, но некоторые системы не выполняют операцию удаления каталогов. Если существует каталог под именем lost+found, то он не включается в число удаляемых. Это важно, если каталог /tmp — отдельная файловая система.

 

Если в системе применяется какая-либо из этих команд, пользователи должны знать, какими принципами руководствуется администратор при чистке файловой системы.

 

Распространение конфигурационных файлов по сети

 

При администрировании компьютерной сети во многих случаях удобно пользоваться единой версией файлов конфигурации, например базой данных о псевдонимах пользователей электронной почты (/usr/lib/aliases или /etc/aliases). Основные версии этих файлов можно распространять ежедневно с помощью программы rdist или сценария на языке expect.

 

 

Иногда необходима последующая обработка файлов. Например, во многих системах требуется, чтобы пользователь выполнял программу newaliases для преобразования текстового файла почтовых псевдонимов в хешированный формат, используемый программой sendmail. Может понадобиться и загрузка файлов в административную базу данных, такую как NIS или NIS+.

 

Циклическое использование журнальных файлов

 

Журнальные файлы в UNIX увеличиваются бесконечно до тех пор, пока пользователь вручную не очистит их. Есть различные способы разрешения этой проблемы. Самый простой из них — периодически усекать файлы.

Более консервативный подход заключается в хранении нескольких старых версий журнального файла и циклическом их использовании по-новому. Это предотвращает бесконтрольное разрастание файлов и в то же время позволяет постоянно держать под рукой информацию о последних изменениях. Такую процедуру лучше всего планировать с помощью демона cron.



 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page