Я пишу сценарии для автоматизации установки новых установок slicehost. В идеальном мире, после того как я запустил сценарий, он просто запускался, не обращая на меня внимания. Мне это удалось, за одним исключением.
Как мне установить часовой пояс в постоянном режиме (после перезагрузки) и в нормальном состоянии (настроить на стандартное и летнее время, поэтому не нужно просто устанавливать дату) ... способом, который не требует от меня ввода?
В настоящее время я использую
dpkg-reconfigure tzdata
Кажется, у этого нет способа принудительно ввести в него параметры. Это требует ввода данных пользователем.
РЕДАКТИРОВАТЬ: я редактирую здесь, а не комментирую, поскольку комментарии, похоже, не допускают блоков кода.
Вот реальный код, который у меня получился, на основе комментария Rudedog ниже. Я также заметил, что это не обновляет / etc / timezone. Я не уверен, кто это использует, но, если кто-то использует, я тоже устанавливаю это.
TIMEZONE="America/Los_Angeles"
echo $TIMEZONE > /etc/timezone
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime # This sets the time
Вы сможете сделать это с помощью
cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
Замените соответствующий часовой пояс в приведенной выше команде.
Попробуй это:
echo "Europe/London" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
В Ubuntu 12.04 мне помогло следующее:
# http://manpages.ubuntu.com/manpages/precise/man7/debconf.7.html
export DEBCONF_NONINTERACTIVE_SEEN=true DEBIAN_FRONTEND=noninteractive
echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure tzdata
Обновить /etc/localtime
символическая ссылка, указывающая на правильный часовой пояс в /usr/share/zoneinfo/
Сам наткнулся на это. Вот полная конфигурация того, как это сделать правильно (это совокупность комментариев здесь и этот вопрос):
#Set time zone and time
echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
echo "tzdata tzdata/Zones/Europe select London" | debconf-set-selections
TIMEZONE="Europe/London"
echo $TIMEZONE > /etc/timezone
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
/usr/sbin/ntpdate pool.ntp.org
tzdata
использует debconf, чтобы ответить на этот вопрос, поэтому вам нужно указать его заранее. Есть несколько способов сделать это, самый простой - укажите ответ во время установки. Кроме того, вы можете настроить базу данных по умолчанию для использования debconf, см. debconf(7)
manpage, как это сделать.
Также убедитесь, что ntpd установлен и запущен.
yum install ntpd
ntpdate pool.ntp.org
service ntpd start