Home

среда, 21 октября 2009 г.

Надо, надо умываться по .. ночам

Операционная система Mac OS X, как и всякая порядочная кошка, любит и соблюдает чистоту. Рассмотрим внимательнее,

washingcat.jpg

как она это делает.

--------------------------------------

Всё описанное в этой статье исполнялось и проверялось на ос версии 10.6.1, на иных версиях детали могут различаться.

Различные периодические действия в системе исполняются при помощи системного агента launchd. Поскольку нужные нам действия предназначены для самой системы, то и файлы настроек этих процессов будут храниться в системной библиотеке.

Переходим в каталог /System/Library/LaunchDaemons, где нас будут интересовать файлы com.apple.periodic-*.plist
Таких должно быть три, а именно -daily, -weekly и -monthly

periodic_plists.png

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

Ключи параметра StartCalendarInterval определяют время запуска:
Hour: 3, Minute: 15
Соответственно шоу назначено на 3:15 ночи.

У еженедельного файла есть параметр Weekday: 6 для запуска только по субботам. Сразу понятно, что винить во всех смертных грехах системы именно евреев не приходится :)
У ежемесячного файла параметр Day:1 назначает запуск на 1е число каждого месяца.

А что-же, собственно, будет происходить? Ключ ProgramArguments указывает на /usr/sbin/periodic с параметрами daily, weekly или monthly.
Все, на этом из системной библиотеки можно выходить.

periodic
- это хорошо известная по BSD системам (1999 год) утилита для исполнения периодических действий.

Основной файл ее конфигурации хранится как /etc/defaults/periodic.conf, а исполняемые ею части - в /etc/periodic

Сам файл конфигурации разбит на секции соответственно периоду запуска, в каждой секции есть части, соответствующие исполняемым задачам. Если перейти в каталог дневных задач (в файндере нажать Shift-Command-G и ввести /etc/periodic/daily), то покажется список скрипов, пронумерованных для соблюдения порядка исполнения. Сами имена красноречиво свидетельствуют о своем назначении:


periodic_scripts.png
  • 100.clean-logs : навести порядок в системных журналах (которые обычно доступны для просмотра из Console.app) - самые старые удалить, более новые заархивировать, И так по кругу
  • 110.clean-tmps удаляет ненужные временные файлы в /tmp
  • 130.clean-msgs, 140.clean-rwho, 199.clean-fax удаляют ненужные системные сообщения в /var/msgs, ошметки принятых и переданных факсов
  • 310.accounting собирает системную статистику
  • 400.status-disks накапливает информацию о состоянии дисковой системы
  • 420.status-network выдает статистику по сетевым подключениям
  • 999.local изначально пуст и предназначен для исполнения задач, определенных администратором локальной машины самостоятельно

еженедельные и ежемесячные задачи отличаются лишь параметрами к примеру: еженедельная задача архивирует журналы, а ежемесячная удаляет старье по итогам месяца

Отчеты об исполненных заданиях daily.out weekly.out monthly.out доступны для просмотра из утилиты Консоль (Console.app) - в дереве журналов в секции Файлов

2 коммент.:

pavel комментирует...

Спасибо за информацию... надеюсь мой 10.5.8 тоже чистит свои ушки и лапки :)

3x комментирует...

Оч занимательно, но есть ряд утилит которые позволяют не ждать ночи... например MainMenu

Отправить комментарий