根据ntp时间差-2秒
#!/bin/bash
# 检查是否提供了NTP服务器地址
if [ $# -eq 0 ]; then
echo "请提供NTP服务器地址"
echo "使用方法: $0 <ntp_server>"
exit 1
fi
ntp_server="$1"
# 获取小数点后6位,与ntp差值相同
old_time=$(date +%s%3N)
# 获取NTP时间
ntp_time=$(ntpdate -q $ntp_server |grep ntpdate |awk '{printf "%.3f", $10}')
ntp_time=${ntp_time//./}
ts=$(($old_time-2000+$ntp_time))
new_time="${ts:0:-3}.${ts: -3}"
justed_time=$(date -d "@$new_time" "+%Y-%m-%d %H:%M:%S")
echo 修改前时间: $(date "+%Y-%m-%d %H:%M:%S")
date -s "$justed_time" >/dev/null
echo "与ntp时间差: $(ntpdate -q $ntp_server |grep "ntpdate" |awk '{print $10}')"
hwclock --localtime --systohc
echo "修改后时间: $justed_time"