如何通过命令行更改ubuntu的服务器日期和时间?
Ubuntu服务器的当前日期和时间与时区日期和时间不同。 我试过用过:
sudo date "30 Sep 2015 4:43:42"
更改它但它没有改变日期和时间,只是在终端上打印了我更改的日期和时间,但是当我执行时:
sudo hwclock --show
日期和时间仍然是旧的。
更改Ubuntu Server的日期和时间的正确方法是什么?
您可以使用以下命令设置系统日期 :
sudo date --set="2015-09-30 10:05:59.990"
然后在使用date
,应该正确显示。
现在您还应该在系统的BIOS中设置硬件时钟 ,该设置在重新启动时仍然存在(在启动时将系统时间设置为硬件时钟的值)。 用hwclock
做到这一点:
sudo hwclock --systohc
这将获取系统时钟(sys)值并设置硬件时钟(hc)。 使用hwclock
命令检查它。 hwclock
和date
现在应该显示相同的日期和时间。
要设置时区 ,可以使用以下命令:
sudo dpkg-reconfigure tzdata
顺便说一句 :如果您将此计算机用作服务器,我强烈建议您使用NTP客户端通过网络同步时间 。 因此,您可以保证所有服务器都具有完全相同的时间设置。 这将在机器运行时同步时间。 如果您的应用程序依赖于服务器上的同步时间,我建议使用NTP-Daemon。 它在后台运行的时间越长,时间就越精确。
我不喜欢手动设置系统时间。 所以要解决这个问题我必须结合两个不同的答案。
要修复系统时间,您必须使用以下代码:
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
在这个答案中给出
然后使用,将硬件时钟与系统时钟同步
sudo hwclock --systohc
由@chaos在这个post中给出的。
只需输入
sudo date newdatestring
使用格式为nnddhhmmyyyy.ss的newdatestring
- nn:(两位数)月份(01到12)
- dd:(两位数)日(01到31),根据月份和年份适用的日常规则
- ……:(两位数)小时(00到23)
- mm:(两位数)分钟(00到59)
- yyyy:这一年; 它可以是两位数或四位数
- ss是两位数秒(00到59)。 注意期间’。’ 在ss之前。
但是除了date命令之外,您可能更喜欢NTP“解决方案”(网络时间协议): Serverguide – NTP ,比手动设置日期更容易处理和更精确。 您可以使用cronjob或ntp守护程序(ntpd)每x小时/分钟更新一次时间…
希望这可以帮助!