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