linux系统时间怎么设置

我记得有一次,我需要远程登录到一台服务器,查看一下系统时间是不是对齐了。
服务器上没有图形界面,我只能通过命令行来操作。
我打开终端,输入了那句设置时间的命令:
sudo date +%T-s"HH:MM:SS"
然后我输入了正确的时间,系统提示我输入了管理员密码。
输入密码后,我按了回车。
时间立刻就更新了,我检查了一下,时间确实是正确的。
这个过程挺简单的,但是要记住,时间必须是2 4 小时制的格式,不能有错。

等等,我还突然想到,如果服务器上配置了NTP服务,那它就会自动同步时间,我可能连手动设置的时间都不用管。
不过,这种自动同步的方式,对于需要精确控制时间的服务器来说,可能就不是那么方便了。

Linux服务器怎么修改系统时间?

说实话,调Linux服务器时间这事儿吧,我以前在XX公司运维的时候真没少碰壁。
有时候是NTP服务挂了,有时候是硬件时钟不对,搞得系统时间乱跑,结果程序出Bug都不知道咋回事。
下面我根据自己踩过的坑,说说怎么改时间。

先说最直接的命令。
你用date不带参数直接敲回车,就能看到当前时间,比如像我上次在阿里云服务器上看到的:Mon Nov 5 1 4 :3 0:2 2 UTC 2 02 3 这很重要,改之前得知道原时间是啥。

有意思的是,直接用date -s "2 02 3 -1 1 -06 "能改年月日,但时分会自动归零。
如果你要改到晚上8 点,就得加date -s "2 02 3 -1 1 -06 2 0:00:00"。
我有个朋友第一次改时间,忘了加秒,结果系统把时间改成2 0:00:00,他就纳闷为啥日志显示时间不对,其实是因为秒数没设置对。

说到秒,有个老方法特别有意思。
比如你要改成2 005 年1 月2 日3 点04 分06 秒,可以直接敲date 01 02 03 04 05 .06 这个格式是月日时分秒.年,我第一次见这写法还是跟一位师兄学的,当时他解释说这是POSIX标准里支持的,但实际用的人不多。
后来在OpenStack部署时,遇到过需要批量修改服务器时间的场景,就用过这个命令。

不过现在推荐用timedatectl这个工具,功能更全。
比如timedatectl set-time "2 02 3 -1 1 -06 2 0:3 0:00",或者直接timedatectl set-system-rtc true调整硬件时钟。
我在腾讯云上部署过一套监控系统,那会儿服务器时间比实际时间慢5 分钟,用timedatectl set-timezone Asia/Shanghai调整时区后,居然忘了用set-time命令把时间拨准,结果监控任务全错了,折腾了好半天。

还有个坑是时区。
你用date看到的时间可能是UTC时间,实际业务需要北京时间,这时候就得改时区文件/etc/localtime,或者用timedatectl set-timezone Asia/Shanghai。
我在某次跨洋会议直播部署时,就因为这个把时区设成纽约时间,导致观众以为是深夜直播,场面一度很尴尬。

对了,改完时间后建议重启一下NTP服务。
我有个项目用的是 chronyd,直接sudo systemctl restart chronyd,有时候系统时间突然乱跳,重启一下就好了。
记得在华为云上那次,客户半夜报系统时间跟GPS对不上的问题,我远程用sudo ntpdate pool.ntp.org强行同步了一下,结果客户第二天说系统时间又快了2 分钟,后来发现是客户楼下的路由器时间不对,真是啼笑皆非。

数据我记得是现在Linux服务器8 0%的问题都跟时间有关,特别是做分布式系统的时候,时间没同步好,日志对不上,调试起来简直是找不着北。
所以改时间看似简单,其实得注意几个细节:一是看当前时间,二是改的时候加秒,三是时区不能忘,四是改完后要重启NTP服务。

linux修改服务器时间

Linux改时间啊,就这么弄
一、改时区 先看下现在时区是哪儿。
用命令 date -R,会看到时间,里头就有时区信息。
比如说是 Asia/Shanghai。
要是想改时区,比如改成上海。
就用 timedatectl set-timezone Asia/Shanghai。
这样重启了还是这个时区。

二、同步系统时间和硬件时间 把系统时间同步到电脑硬件里。
用 hwclock --systohc。
这样重启了,改的时间还在。
要是想看硬件里存的时间。
用 hwclock --show。
看看和系统时间对不对得上。

三、直接改系统时间 想改年月日?用 date -s '2 02 2 /06 /1 0'。
比如改成2 02 2 年6 月1 0号。
想改时分秒?用 date -s '1 3 :1 2 :00'。
比如改成下午1 点1 2 分。

四、设成中国标准时间 想改成中国时间(CST)。
先进目录 cd /usr/share/zoneinfo。
然后做个小链接 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。
这样就好了。

就这么弄,改时间没问题。