我正在编写脚本来自动设置新的slicehost安装。 在一个完美的世界里,当我开始剧本之后,它就会运行,而我却不在意。 除了一个例外,我已经成功了。
如何设置时区,永久(重新生存)和理智(调整标准和夏令时,所以不要只是强制date)…方式,不需要我的input?
目前,我正在使用
dpkg-reconfigure tzdata
这似乎没有任何方法来强制参数。 它要求用户input。
编辑:我在这里编辑,而不是评论,因为评论似乎不允许代码块。
下面是我结束的实际代码,基于下面的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
在上面的命令中replace适当的时区。
更新/etc/localtime符号链接指向/usr/share/zoneinfo/正确时区/usr/share/zoneinfo/
在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
尝试这个:
echo "Europe/London" > /etc/timezone dpkg-reconfigure -f noninteractive tzdata
自己跑进这个。 这是一个完整的configuration如何做到这一点(这是这里和这个问题的意见汇总):
#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)联机帮助页。
还要确保ntpd已经安装并正在运行。
yum install ntpd ntpdate pool.ntp.org service ntpd start