新增 h-hosts.sh 脚本,用于配置 /etc/hosts 文件并添加域名解析记录
This commit is contained in:
87
h-hosts.sh
Executable file
87
h-hosts.sh
Executable file
@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# h-hosts.sh - 配置hosts文件脚本
|
||||
# 用于添加指定域名解析记录到 /etc/hosts 文件
|
||||
|
||||
# 检查是否有root权限
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "错误: 此脚本需要root权限运行"
|
||||
echo "请使用: sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 设置颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 定义IP地址和域名列表
|
||||
IP_ADDRESS="158.180.89.16"
|
||||
DOMAINS=(
|
||||
"git.yanhao.ren"
|
||||
"harbor.oo1.dev"
|
||||
"alist.oo1.dev"
|
||||
)
|
||||
|
||||
# 统计变量
|
||||
ADDED_COUNT=0
|
||||
UPDATED_COUNT=0
|
||||
UNCHANGED_COUNT=0
|
||||
|
||||
echo -e "${GREEN}开始配置hosts文件...${NC}"
|
||||
echo "目标IP地址: $IP_ADDRESS"
|
||||
echo
|
||||
|
||||
# 备份原hosts文件
|
||||
BACKUP_FILE="/etc/hosts.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
cp /etc/hosts "$BACKUP_FILE"
|
||||
echo -e "${YELLOW}已创建备份文件: $BACKUP_FILE${NC}"
|
||||
|
||||
# 添加域名解析记录
|
||||
for domain in "${DOMAINS[@]}"; do
|
||||
# 检查域名是否已存在
|
||||
if grep -q "$domain" /etc/hosts; then
|
||||
# 获取当前域名对应的IP地址
|
||||
current_ip=$(grep "$domain" /etc/hosts | grep -v '^#' | awk '{print $1}' | head -1)
|
||||
|
||||
if [ "$current_ip" = "$IP_ADDRESS" ]; then
|
||||
echo -e "${GREEN}域名 $domain 已正确配置 (IP: $current_ip)${NC}"
|
||||
((UNCHANGED_COUNT++))
|
||||
else
|
||||
echo -e "${YELLOW}域名 $domain 已存在但IP不同 (当前: $current_ip, 目标: $IP_ADDRESS)${NC}"
|
||||
echo -e "${YELLOW}正在更新IP地址...${NC}"
|
||||
|
||||
# 删除旧记录并添加新记录
|
||||
sed -i.tmp "/[[:space:]]$domain[[:space:]]*$/d" /etc/hosts
|
||||
echo "$IP_ADDRESS $domain" | tee -a /etc/hosts
|
||||
echo -e "${GREEN}已更新: $domain 的IP地址从 $current_ip 更新为 $IP_ADDRESS${NC}"
|
||||
((UPDATED_COUNT++))
|
||||
fi
|
||||
else
|
||||
echo "$IP_ADDRESS $domain" | tee -a /etc/hosts
|
||||
echo -e "${GREEN}已添加: $IP_ADDRESS $domain${NC}"
|
||||
((ADDED_COUNT++))
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo -e "${GREEN}hosts文件配置完成!${NC}"
|
||||
|
||||
# 显示操作统计
|
||||
echo
|
||||
echo -e "${YELLOW}操作统计:${NC}"
|
||||
echo -e " 新增域名: ${GREEN}$ADDED_COUNT${NC}"
|
||||
echo -e " 更新域名: ${YELLOW}$UPDATED_COUNT${NC}"
|
||||
echo -e " 未变更域名: ${GREEN}$UNCHANGED_COUNT${NC}"
|
||||
|
||||
# 显示添加的记录
|
||||
echo
|
||||
echo -e "${YELLOW}当前配置的解析记录:${NC}"
|
||||
for domain in "${DOMAINS[@]}"; do
|
||||
grep "$domain" /etc/hosts | grep "$IP_ADDRESS"
|
||||
done
|
||||
|
||||
echo
|
||||
echo -e "${YELLOW}如需恢复原配置,请运行:${NC}"
|
||||
echo "sudo cp $BACKUP_FILE /etc/hosts"
|
Reference in New Issue
Block a user