rz преди 1 година
родител
ревизия
465ac6472a
променени са 2 файла, в които са добавени 49 реда и са изтрити 2 реда
  1. 3 2
      hosts_product.txt
  2. 46 0
      synchosts.sh

+ 3 - 2
hosts_product.txt

@@ -1,3 +1,4 @@
-172.17.145.80 web10.jy360.cn
-172.17.4.19 proxy.jy360.cn
+172.17.32.18 git.jy360.cn
+172.17.145.164 web10.jy360.cn
+172.17.4.195 proxy.jy360.cn
 172.17.4.12 web2.jy360.cn

+ 46 - 0
synchosts.sh

@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# 获取当前时间
+current_time=$(date "+%Y%m%d%H%M")
+
+# 备份/etc/hosts文件
+backup_file="/opt/host/hosts.$current_time"
+cp /etc/hosts "$backup_file"
+
+
+# 下载远程文件
+curl -s -o hosts_product.txt http://172.17.32.18:11082/BaseService/jyhosts/raw/master/hosts_product.txt 
+
+# 检查文件是否成功下载
+if [ $? -ne 0 ]; then
+  echo "无法下载远程文件"
+  exit 1
+fi
+
+# 对比文件内容并替换
+
+add_count=0
+while IFS= read -r line || [[ -n "$line" ]]; do
+  domain=$(echo "$line" | awk '{print $2}')
+  ip=$(echo "$line" | awk '{print $1}')
+  
+  # 检查是否存在域名
+  grep -q "$domain" /etc/hosts
+  
+  if [ $? -eq 0 ]; then
+    # 域名存在,检查IP是否一致
+    existing_ip=$(grep "$domain" /etc/hosts | awk '{print $1}')
+    if [ "$existing_ip" != "$ip" ]; then
+      # IP不一致,进行替换
+      add_count=$((add_count+1))
+      sed -i "s/^$existing_ip[[:space:]]*$domain/$ip $domain/" /etc/hosts
+    fi
+  else
+    # 域名不存在,新增
+    add_count=$((add_count+1))
+    echo "$ip $domain" >> /etc/hosts
+  fi
+
+done < hosts_product.txt
+
+echo "替换完成: ${add_count}"