在 Ubuntu/Linux 服务器上调整系统时间(日期和时间)可以通过以下命令实现,具体分为 手动设置 和 自动同步(NTP)两种方式:
1. 查看当前系统时间
date
或查看详细时区信息:
timedatectl
2. 手动设置时间
(1) 使用 date
命令(临时生效,重启可能失效)
sudo date -s "2024-05-21 15:30:00"
或:
sudo date +%T -s "15:30:00" # 仅修改时间
sudo date +%Y%m%d -s "20240521" # 仅修改日期
(2) 使用 timedatectl
(推荐,永久生效)
sudo timedatectl set-time "2024-05-21 15:30:00"
或分别设置日期和时间:
sudo timedatectl set-time 15:30:00
sudo timedatectl set-time 2024-05-21
3. 设置时区
(1) 查看可用时区
timedatectl list-timezones
或搜索特定时区(如上海):
timedatectl list-timezones | grep Shanghai
(2) 修改时区
sudo timedatectl set-timezone Asia/Shanghai
或使用传统方式:
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4. 自动同步网络时间(NTP)
(1) 启用 NTP 时间同步
sudo timedatectl set-ntp true
检查状态:
timedatectl status
(如果显示 NTP synchronized: yes
,表示已启用自动同步。)
(2) 手动强制同步
如果 NTP 未自动同步,可以手动触发:
sudo systemctl restart systemd-timesyncd
或使用 ntpdate
(需安装):
sudo apt install ntpdate -y
sudo ntpdate pool.ntp.org
5. 硬件时间(BIOS时间)同步
系统时间修改后,建议同步到硬件时钟:
sudo hwclock --systohc
查看硬件时间:
sudo hwclock --show
总结
需求 | 命令 |
---|---|
查看时间 | date 或 timedatectl |
手动改时间 | sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS" |
修改时区 | sudo timedatectl set-timezone Asia/Shanghai |
启用 NTP 自动同步 | sudo timedatectl set-ntp true |
强制同步 NTP | sudo ntpdate pool.ntp.org |
同步硬件时间 | sudo hwclock --systohc |
⚠️ 注意:
- 在 生产服务器 上修改时间可能影响日志、数据库、计划任务等,建议在维护窗口操作。
- 如果服务器运行 Kubernetes/Docker,还需同步容器时间。