使用自动脚本设置时区

使用自动脚本设置时区

我正在编写脚本来自动设置新的 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

答案1

你应该能够做到这一点

cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

在上面的命令中替换适当的时区。

答案2

在 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

答案3

尝试这个:

echo "Europe/London" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata

答案4

我自己也遇到过这种情况。下面是正确执行此操作的完整配置(它是此处评论的汇总,以及这个问题):

#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

相关内容