同步服务器时间

提供一个同步服务器时间的脚本。该脚本用于同步物理机系统时间,首先检测并优先使用chrony或ntpdate工具连接阿里云NTP服务器进行时间同步,若未安装则自动安装chrony服务。接着将时区设置为Asia/Shanghai,最后显示当前系统时间和硬件时钟状态。脚本包含错误处理机制,支持多种Linux发行版,执行完成后会输出同步结果。

bash 复制代码
#!/bin/bash
# sync_time.sh - 同步物理机时间

echo "===== 开始时间同步 ====="

# 1. 物理机时间同步
echo "1. 同步物理机时间..."
if command -v chronyc &> /dev/null; then
    echo "  使用chrony同步..."
    systemctl stop chronyd 2>/dev/null
    chronyd -q 'server ntp.aliyun.com iburst' 2>/dev/null
    systemctl start chronyd 2>/dev/null
elif command -v ntpdate &> /dev/null; then
    echo "  使用ntpdate同步..."
    ntpdate -s time1.aliyun.com 2>/dev/null || \
    ntpdate -s ntp1.aliyun.com 2>/dev/null || \
    ntpdate -s time.windows.com 2>/dev/null
else
    echo "  安装时间同步工具..."
    dnf install -y chrony 2>/dev/null || yum install -y chrony 2>/dev/null
    systemctl start chronyd
    systemctl enable chronyd
    chronyd -q 'server ntp.aliyun.com iburst'
fi

# 2. 设置时区
echo "2. 设置时区..."
timedatectl set-timezone Asia/Shanghai 2>/dev/null || {
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    echo "Asia/Shanghai" > /etc/timezone 2>/dev/null || true
}

# 3. 显示当前时间
echo "3. 当前时间:"
date
hwclock -r 2>/dev/null || echo "无法读取硬件时钟"

echo "===== 时间同步完成 ====="
相关推荐
0+1117 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋7 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家8 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890758 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻8 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_9498477510 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069410 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗11 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB11 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep12 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint