refactor: 重命名 h-hosts.sh 为 h-hosts.sh.off

This commit is contained in:
严浩
2025-09-13 23:40:17 +08:00
parent c74b3d5d45
commit 81424c5725

97
h-hosts.sh.off Executable file
View File

@@ -0,0 +1,97 @@
#!/bin/bash
# h-hosts.sh - 配置hosts文件脚本
# 用于添加指定域名解析记录到 /etc/hosts 文件
# GitHub Actions 配置模板
GITHUB_ACTIONS_CONFIG='
steps:
- name: 配置 hosts
run: |
URL="https://Git.1-H.CC/Scripts/Linux/raw/branch/main/h-hosts.sh"; curl -fsSL "$URL" | bash
'
# 检查是否有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=(
"alist.oo1.dev"
)
# "git.yanhao.ren"
# "harbor.oo1.dev"
# sudo sed -i '/harbor.oo1.dev/d' /etc/hosts
# 统计变量
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"