我发现了两种在 Ubuntu 服务器上设置时区的可能方法。
使用 timedatectl
timedatectl set-timezone CET
使用 dpkg-reconfigure
echo "Etc/CET" > /etc/timezone
dpkg-reconfigure --frontend noninteractive tzdata
这些方法有区别吗?如果有,区别是什么?
我发现这个问题,但这并不是我要找的东西。我想知道这两种方法之间的区别,这样我才能知道自己在做什么。
第二种方法是否不再适用于 Ubuntu 16.04?
答案1
timedatectl 由 systemd 引入,与 init 系统相关
因此如果你在 devuan 中尝试此命令,它将不起作用,因为 devuan 是一个决定拒绝 systemd 的团队。
dpkg 方式适用于任何支持 .deb 的系统,因为它与打包系统相关。
答案2
抱歉回答晚了,但我发现自己今天也问了同样的问题,所以我做了一些研究,想与大家分享:
该timedatectl
程序是大多数现代 Linux 发行版的一部分systemd
,因此可在大多数现代 Linux 发行版上使用,包括最新的 Ubuntu。
如果您知道您的时区,America/New_York
或者Europe/Berlin
您可以使用您提到的“发射后不管”命令轻松设置您的当地时间并完成它,这使得它对于系统设置脚本中的自动化具有吸引力:
sudo timedatectl set-timezone <timezone>
如果你不知道你的时区,你可以通过以下方式打印出所有可用时区的列表
timedatectl list-timezones
该命令dpkg-reconfigure tzdata
用于重新配置时区数据包,其中还包含时区数据。运行该命令将弹出一个对话框,允许您选择代表时区的地理区域和城市,因此您可以不需要提前了解或找到您的时区。
此方法较旧,已用于在 Debian 和 Ubuntu 中设置时区多年,因此此方法可能不适用于某些较新版本的 Ubuntu,因为它可能已被取代timedatectl
。
总结一下:它们的作用相同,一个比另一个新,如果您仍在处理旧系统,它们可能可用,也可能不可用。所以最好了解它们。我更喜欢timedatectl
在配置系统时使用它,因为它只是一个可以放入脚本的单行代码,因为我事先知道我的区域,而不是用tzdata
箭头键手动浏览时区列表,如果您不知道自己的时区并想缩小时区范围,这可能会派上用场。
截至 3 月 23 日,两者仍可在 Debian 11 (bullseye) 中使用,甚至还可以在测试版 (sid/bookworm) 中使用。