вторник, 5 июня 2012 г.

Синхронизация времени в Slackware Linux

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

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

ntpdate 0.ru.pool.ntp.org
а в ответ получим нечто подобное
5 Jun 11:35:49 ntpdate[3101]: step time server 85.21.78.91 offset -36.229690 sec
Все наши часы синхронизированы с атомными часами.
Но вводить каждый раз одну и туже команду это не наш метод, мы же можем ее добавить в демон-планировщик задач, например в cron. Для того, что бы добавить наше задание нужно выполнить другую команду

crontab -e
Данная команда вызовет редактор настроек cron, и откроет в редакторе настроенном по умолчания в вашей системе, в моей это vi.
В результате мы получим нечто подобное
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system, but if they don't the average newbie
# might get quite perplexed about getting strange mail every 5 minutes. :^)
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
 
 
Добавляем нашу задачу для выполнения раз в неделю, чаще нет смысла, кварцевые часы работают достаточно точно в течении недели и более. Добавляем строчку в файл настройки, это нам позволит синхронизировать время один раз в неделю в 12 часов дня, при отрабатывании команды логи не сохранять, но если у вас сервер, вы можете сделать на свое усмотрение.
12 0 * * 0 /usr/sbin/ntpdate 0.ru.pool.ntp.org 1> /dev/null
Должно получиться что-то вроде этого
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system, but if they don't the average newbie
# might get quite perplexed about getting strange mail every 5 minutes. :^)
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
12 0 * * 0 /usr/sbin/ntpdate 0.ru.pool.ntp.org 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null

В принципе этого достаточно для работы ваших и моих часов с точностью до секунды с атомными часами, но у нас же есть еще внутренние часы, встроенные в материнскую плату, я не знаком с методом синхронизации в windows, но в linux можно синхронизировать, для этого используется команда
hwclock --systohc
тогда после выполнения этой команды будет синхронизировано время и в часикам материнской платы, предупреждаю заранее, у некоторых возможно это не произойдет, разные версии BIOS могут не поддерживать такую функцию.
Что бы использовать такую команду, нам нужно так же как и предыдущую команду настроить на автоматическую работу, можно сразу после выполнения первой.
Получиться примерно следующее
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system, but if they don't the average newbie
# might get quite perplexed about getting strange mail every 5 minutes. :^)
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
0 12 * * 0 /usr/sbin/ntpdate 0.ru.pool.ntp.org 1> /dev/null
5 12 * * 0 /sbin/hwclock --systohc 1> /dev/null

#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
Получилось вот как-то так, это моя первая статья в жизни, спасибо что дочитали, комментариях можно выражать своим мысли и замечания, возможно к некоторым я прислушаюсь.

3 комментария:

Unknown комментирует...
Этот комментарий был удален автором.
Unknown комментирует...

Ох спасибо! Как раз искал, а тут... Красота :)
Все работает, спасибо!

P.S. Сохранять файл crontab нужно командой vim'a
:x

Andy-Pa комментирует...

Спасибо что моя маленькая статься была вам полезна, значит я провел время с пользой, добавил ссылку в название редактора, по ней можно получить краткие команды по работе с vi, я не заострял внимание на этом, т.к. консольный редактор по умолчанию может быть отличный от моего.