Внутреннее устройство Linux
Шрифт:
Файлы часовых поясов для вашей системы расположены в каталоге /usr/share/zoneinfo. Этот каталог содержит множество файлов часовых поясов и псевдонимов для них. Чтобы настроить часовой пояс вручную, скопируйте один из таких файлов из каталога /usr/share/zoneinfo в каталог /etc/localtime, или создайте символическую ссылку, или же измените его с помощью инструмента для работы с часовыми поясами. Команда tzselect может помочь вам при определении файла часового пояса.
Чтобы использовать лишь на один сеанс оболочки часовой пояс, который отличается от установленного в системе по умолчанию, укажите в переменной
$ export TZ=US/Central
$ date
Как и в случае с другими переменными окружения, можно указать часовой пояс только на время работы единственной команды:
$ TZ=US/Central date
7.5.2. Сетевое время
Если ваш компьютер постоянно подключен к сети Интернет, можно запустить демон NTP (Network Time Protocol, протокол сетевого времени), чтобы настраивать время с помощью удаленного сервера. Во многие версии ОС встроена поддержка демона NTP, однако он может быть не включен по умолчанию. Может потребоваться установка пакета ntpd, чтобы привести его в действие.
Если вам необходимо выполнить конфигурацию вручную, справочную информацию можно найти на основной странице NTP , но если вы предпочитаете не копаться в документации, выполните следующее.
1. Отыщите ближайший к вам сервер NTP, узнав его от поставщика интернет-услуг или на странице ntp.org.
2. Поместите имя сервера времени в файл /etc/ntpd.conf.
3. Запустите во время загрузки системы команду ntpdate server.
4. После команды ntpdate запустите во время загрузки системы команду ntpd.
Если ваш компьютер не подключен к Интернету постоянно, можно использовать демон вроде chronyd, чтобы поддерживать время, когда подключение отсутствует.
Можно также настроить аппаратные часы на основе сетевого времени, чтобы обеспечить связность отсчета времени в системе при ее перезагрузке. Во многих версиях ОС это происходит автоматически. Чтобы выполнить это, возьмите системное время из сети с помощью команды ntpdate (или ntpd), а затем запустите команду, которую вы уже видели ранее:
# hwclock —systohc –-utc
7.6. Планирование повторяющихся задач с помощью службы cron
Служба cron в Unix повторно запускает команды на основе постоянного расписания. Большинство опытных администраторов считают службу cron особо важной для системы, поскольку она способна выполнять автоматическое обслуживание системы. Например, она выполняет запуск утилит для чистки файлов журналов, чтобы ваш жесткий диск не переполнялся старыми файлами журналов. Вам следует знать, как использовать службу cron, поскольку она, безусловно, полезна.
С помощью службы cron можно запустить любую команду в любое удобное для вас время. Команда, запущенная с помощью службы cron, называется заданием cron. Чтобы создать задание cron, необходимо внести запись в файл crontab, обычно с помощью команды crontab.
Например, для настройки ежедневного запуска команды /home/juser/bin/spmake в 9:15
15 09 * * * /home/juser/bin/spmake
Пять разделенных пробелами полей в начале этой строки определяют запланированное время (см. также рис. 7.3). Эти поля обозначают следующее:
• минута (от 0 до 59). Приведенное выше задание cron настроено на запуск в 15-ю минуту;
• час (от 0 до 23). Задание настроено на запуск в 9-й час;
• день месяца (от 1 до 31);
• месяц (от 1 до 12);
• день недели (от 0 до 7). Числа 0 и 7 соответствуют воскресенью.
Рис. 7.3. Запись из файла crontab
Звездочка (*) в любом поле соответствует любому значению. В приведенном примере команда spmake запускается ежедневно, поскольку поля для дня месяца, месяца и дня недели заполнены звездочками, которые служба cron интерпретирует как «запускать данное задание каждый день, каждый месяц и каждый день недели».
Чтобы запускать команду spmake только на 14-й день каждого месяца, можно воспользоваться такой строкой в файле crontab:
15 09 14 * * /home/juser/bin/spmake
Можно указывать более одного значения в каждом поле. Чтобы, например, запускать команду по 5-м и 14-м числам каждого месяца, следует ввести числа 5,14 в третье поле:
15 09 5,14 * * /home/juser/bin/spmake
примечание
Если задание cron создает стандартный вывод, ошибку или некорректно завершает работу, служба cron отправит вам по электронной почте сообщение об этом. Если такие электронные письма вам надоедают, перенаправьте вывод в устройство /dev/null или в какой-либо файл журнала.
Страница руководства crontab(5) содержит полную информацию о формате файла crontab.
7.6.1. Установка файлов crontab
У каждого пользователя может быть свой файл crontab. Это значит, что в системе может быть несколько таких файлов, которые, как правило, располагаются в каталоге /var/spool/cron/crontabs. Обычным пользователям не разрешено выполнять запись в данный каталог. Пользовательский файл crontab можно разместить, просмотреть, отредактировать и удалить с помощью команды crontab.
Простейший способ установить файл crontab — поместить записи в какой-либо файл, а затем воспользоваться командой crontab file, чтобы установить этот файл в качестве текущего файла crontab. Команда crontab проверяет формат файла, чтобы убедиться в отсутствии ошибок в нем. Чтобы вывести список заданий cron, запустите команду crontab -l. Чтобы удалить файл crontab, воспользуйтесь командой crontab -r.
Тем не менее, после того как вы создали начальный файл crontab, использование временных файлов при дальнейшем его редактировании может вызвать неудобства. Вместо этого можно отредактировать и установить файл crontab за один шаг с помощью команды crontab -e. Если вы допустите ошибку, команда crontab сообщит вам о том, где она находится, и предложит вам повторно отредактировать файл.