linux时间显示错误怎么办

哎... Linux 时间对不准啊... 我当年就遇到过...
2 02 2 年的时候吧... 我在一个城市... 呃... 哪个城市... 记不清了... 反正就是服务器时间不对...
用 date 命令一看... 咦?怎么是凌晨呢?肯定不对啊... 时区肯定设置错了...
然后我就用 timedatectl set-timezone Asia/Shanghai... 这个命令... 没错... 就是这个...
我敲了 sudo timedatectl set-timezone Asia/Shanghai... 然后回车... 等了一会... 再用 date 看看... 好了... 正常了...
后来我又试过另一个方法... 就是 sudo tzselect... 这个命令... 它会提示你选择亚洲、中国、北京... 然后你选北京... 确认... 也行...
不过我还得检查一下 /etc/localtime 这个文件... 看看它是不是链接到 /usr/share/zoneinfo/Asia/Shanghai 这个地方...
如果时区对了... 时间还是不对... 那肯定就是系统时间没同步...
我就装了 ntpdate 这个工具... 然后执行 sudo ntpdate cn.pool.ntp.org... 这样手动同步一下... 嗯... 时间对准了...
不过更推荐的是用 NTP 自动同步服务... 用 sudo timedatectl set-ntp true... 这样系统会自动连接 NTP 服务器... 持续校准时间...
我之前用过 ntpd 或 chrony 服务... 也是为了持续同步时间...
哦对了... 还有硬件时钟和系统时间的区别... Linux 默认认为是 UTC 时间... 而 Windows 视为本地时间... 如果你有双系统... 可能会出现 8 小时的偏差...
我就在 Linux 里运行过 sudo timedatectl set-local-rtc 1 ... 让硬件时钟用本地时间... 这样就兼容 Windows 了...
或者你可以在 Windows 注册表中添加 RealTimeIsUniversal 项... 设置为 1 ...
设置完之后... 用 timedatectl 或者 date -R 命令... 验证一下结果...
如果还需要手动修改时间... 可以用 sudo date -s "YYYY-MM-DDHH:MM:SS"... 设定好时间... 然后再执行 sudo hwclock --systohc... 把系统时间写入硬件时钟...
嗯... 就是这样...

linux服务器校对时间方法命令详解

对,就是这个问题。
NTP协议自动校时,简单说就是用NTP工具连接NTP服务器,自动调整时间。

安装NTP工具,比如Debian/Ubuntu用apt-get install ntpdate,CentOS/RHEL用yum install ntp。

直接用命令同步时间,比如中国NTP服务器是ntpdate cn.pool.ntp.org。

定时自动校时,比如每天中午1 2 点自动执行,用Cron任务设置。

另一方法,快速校对至北京时间,用rdate命令,连接香港标准时间服务器stdtime.gov.hk。

系统时钟修正后,用hwclock -w写入硬件时钟。

注意时区设置,要设为Asia/Shanghai,别用UTC。

NTP适合长期自动同步,rdate适合快速手动修正。
记得防火墙要开,允许NTP或rdate端口。
你自己看,这些操作能保证服务器时间准确。

计划任务延时8小时启动

对,就是这个问题。
之前遇到过。

首先,时区搞对,别差8 小时。
用cat /etc/sysconfig/clock看。

不对?改!RedHat系统,编辑/etc/sysconfig/clock,把ZONE改成"Asia/Shanghai"。

然后,systemd系统,sudotimedatectl set-timezone Asia/Shanghai。

重启timedatectl服务或系统,搞定。

任务延时,用at命令。
先启动atd服务,systemctl status atd。

然后,echo "your_command" | at now + 8 hours。

或者,用cron加sleep。
crontab -e,加行@reboot sleep 2 8 8 00 && your_command。

注意,别系统重启了,任务没执行。
关键任务,先测试。
你自己看。

Win/Lin 双系统时间错误的调整

说白了,Win/Lin双系统时间错误主要是因为Windows默认硬件时间用本地时间,而Linux用UTC时间造成的。
其实很简单,调整方法就是修改Windows的注册表,使其也使用UTC时间。

先说最重要的,进入Windows1 0系统的注册表编辑器,找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation路径。
去年我们跑的那个项目,大概3 000量级,这个路径是固定的,不会因为个人设置而变化。

另外一点,你需要新建一个名为RealTimeIsUniversal的QWORD(6 4 位)值。
我一开始也以为这个操作会很复杂,但后来发现其实很简单。
你只需要将这个值改为1 ,就能让Windows也使用UTC时间了。

还有个细节挺关键的,修改完成后记得重启计算机。
如果你重启后发现时间还是快8 小时,那么你可能需要进入BIOS调整时间。
这个步骤是可选的,但有时候很坑,因为很多人没注意这个细节。

最后,双系统都可以开启“时间与Internet同步”功能,这个点很多人没注意,但我觉得值得试试。
另外,这个方法仅适用于Windows7 或更高版本,等等,还有个事,如果你使用的是3 2 位系统,那么你应该创建的是DWORD(3 2 位)值,而不是QWORD(6 4 位)值。

总的来说,解决Win/Lin双系统时间不一致的问题,关键在于修改注册表和可能需要调整BIOS时间。
我觉得这个方法值得一试,不过在使用之前,一定要确保你清楚自己在做什么。