删除DN42相关配置
This commit is contained in:
79
update.sh
79
update.sh
@@ -1,72 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 配置参数(请替换为实际URL)
|
||||
URL="https://git.nia.ink/brnet/bird_config/raw/branch/master/bird/function/unet.conf" # 替换为你的$url
|
||||
TARGET_FILE="/etc/bird/function/unet.conf"
|
||||
BACKUP_FILE="${TARGET_FILE}.bak.$(date +%Y%m%d%H%M%S)" # 带时间戳的备份文件
|
||||
LOG_FILE="/var/log/update_unet_conf.log"
|
||||
rm /etc/bird/conf/dn42.conf
|
||||
rm /etc/bird/function/dn42.conf
|
||||
rm /etc/bird/net/dn42.conf
|
||||
|
||||
# 日志函数
|
||||
log() {
|
||||
echo "[$(date +%Y%m%d%H%M%S)] $1" >> "$LOG_FILE"
|
||||
}
|
||||
rm /etc/bird/function/unet.conf
|
||||
curl https://git.nia.ink/brnet/bird_config/raw/branch/master/bird/function/unet.conf > /etc/bird/function/unet.conf
|
||||
|
||||
# 检查root权限
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
log "错误:必须使用root权限运行脚本(请用sudo)"
|
||||
echo "错误:必须使用root权限运行脚本(请用sudo)"
|
||||
exit 1
|
||||
fi
|
||||
rm /etc/bird/bird.conf
|
||||
curl https://git.nia.ink/brnet/bird_config/raw/branch/master/bird/bird.conf > /etc/bird/bird.conf
|
||||
|
||||
# 检查wget是否安装
|
||||
if ! command -v wget &> /dev/null; then
|
||||
log "错误:未安装wget,请先执行 'sudo apt install wget' 或 'sudo yum install wget' 安装"
|
||||
echo "错误:未安装wget,请先安装"
|
||||
exit 1
|
||||
fi
|
||||
temp_file=$(mktemp)
|
||||
awk '
|
||||
BEGIN { delete_dn42 = 0 }
|
||||
/^define DN42_ASN/ { delete_dn42 = 1 }
|
||||
delete_dn42 == 0 { print $0 }
|
||||
/^define UNET_ASN/ { delete_dn42 = 0; print $0 }
|
||||
' /etc/bird/vars.conf > "$temp_file"
|
||||
|
||||
# 检查目标文件目录是否存在
|
||||
if [ ! -d "$(dirname "$TARGET_FILE")" ]; then
|
||||
log "错误:目标目录 $(dirname "$TARGET_FILE") 不存在"
|
||||
echo "错误:目标目录不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 备份原文件
|
||||
log "开始备份原文件到 $BACKUP_FILE"
|
||||
if cp "$TARGET_FILE" "$BACKUP_FILE"; then
|
||||
log "备份成功"
|
||||
if [ -s "$temp_file" ]; then
|
||||
mv "$temp_file" /etc/bird/vars.conf
|
||||
echo "已成功删除 /etc/bird/vars.conf 中的DN42配置部分"
|
||||
else
|
||||
log "错误:备份失败,终止操作"
|
||||
echo "错误:备份失败"
|
||||
exit 1
|
||||
echo "处理出错,临时文件为空,未修改原文件"
|
||||
rm "$temp_file"
|
||||
fi
|
||||
|
||||
# 下载并覆盖文件
|
||||
log "开始从 $URL 下载文件"
|
||||
if wget -q -O "$TARGET_FILE" "$URL"; then # -q 静默模式,-O 指定输出文件
|
||||
log "下载成功,已覆盖 $TARGET_FILE"
|
||||
else
|
||||
log "错误:下载失败,恢复原文件"
|
||||
echo "错误:下载失败,正在恢复原文件..."
|
||||
mv "$BACKUP_FILE" "$TARGET_FILE" # 恢复备份
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 验证文件内容(检查是否为空或乱码)
|
||||
if [ ! -s "$TARGET_FILE" ]; then # -s 检查文件非空
|
||||
log "错误:下载的文件为空,恢复原文件"
|
||||
echo "错误:文件为空,正在恢复原文件..."
|
||||
mv "$BACKUP_FILE" "$TARGET_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# (可选)重启bird服务并检查状态
|
||||
log "重载bird服务"
|
||||
birdc c
|
||||
log "脚本执行完毕"
|
||||
|
||||
cat $TARGET_FILE
|
||||
|
||||
cd
|
||||
rm update.sh
|
||||
Reference in New Issue
Block a user