方法一?
[root@bogon hwh-ansible]# cat time-sync.sh?
#!/bin/bash# NTP 服務器信息
NTP_SERVER="192.168.42.12"
PASSWORD="123456"# 多個 IP 地址
HOSTS=("192.168.42.8" "192.168.42.9" "192.168.42.10" "192.168.42.11" "192.168.42.12" "192.168.42.13" "192.168.42.14" "192.168.42.15" "192.168.42.16" "192.168.42.17" "192.168.42.18" "192.168.42.20" "192.168.42.21" "192.168.42.22" "192.168.42.23" "192.168.42.58" "192.168.42.59" "192.168.42.60" "192.168.42.48" "192.168.42.49" "192.168.42.50" "192.168.42.51" "192.168.42.52" "192.168.42.53" "192.168.42.54" "192.168.42.55" "192.168.42.57" "192.168.42.57")# 紅色和正常顏色的ANSI轉義碼
RED="\033[31m"
NC="\033[0m" ?# 用于重置顏色# 循環處理每個 IP 地址
for HOST in "${HOSTS[@]}"
do
? # 執行 SSH 命令并提取關鍵信息
? OUTPUT=$(sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no root@$HOST "ntpdate $NTP_SERVER" 2>/dev/null)? # 提取時間偏移信息
? OFFSET=$(echo "$OUTPUT" | awk '/adjust time server/ {print $9, $10}' | cut -d ' ' -f 1)? # 判斷偏移量是否大于等于 2,并顯示紅色
? if (( $(echo "$OFFSET >= 2" | bc -l) )); then
? ? # 輸出紅色
? ? echo -e "${RED}$HOST ? ?$NTP_SERVER ? ?$OFFSET${NC}"
? else
? ? # 正常輸出
? ? echo "$HOST ? ?$NTP_SERVER ? ?$OFFSET"
? fi
done
方法二?
#!/bin/bash
# NTP 服務器信息
NTP_SERVER="192.168.42.12"
PASSWORD="zstack@123"# 多個 IP 地址
HOSTS=("192.168.42.8" "192.168.42.9" "192.168.42.10" "192.168.42.11" "192.168.42.12" "192.168.42.13" "192.168.42.14" "192.168.42.15" "192.168.42.16" "192.168.42.17" "192.168.42.18" "192.168.42.20" "192.168.42.21" "192.168.42.22" "192.168.42.23" "192.168.42.58" "192.168.42.59" "192.168.42.60" "192.168.42.48" "192.168.42.49" "192.168.42.50" "192.168.42.51" "192.168.42.52" "192.168.42.53" "192.168.42.54" "192.168.42.55" "192.168.42.57" "192.168.42.57")# 循環處理每個 IP 地址
for HOST in "${HOSTS[@]}"
do
? # 執行 SSH 命令并提取關鍵信息
? OUTPUT=$(sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no root@$HOST "ntpdate $NTP_SERVER" 2>/dev/null)? # 提取時間偏移信息
? OFFSET=$(echo "$OUTPUT" | awk '/adjust time server/ {print $9, $10}')? # 格式化輸出
? echo "$HOST ? ?$NTP_SERVER ? ?$OFFSET"
done
??