#!/bin/bash # 检查是否以root权限运行 if [ "$EUID" -ne 0 ]; then echo "错误:请以root权限运行此脚本" exit 1 fi # 重新挂载/usr为可写模式 echo "重新挂载/usr为读写模式..." sudo mount -o remount,rw /usr # 检查挂载是否成功 if [ $? -ne 0 ]; then echo "错误:无法重新挂载/usr为读写模式" exit 1 fi # 定义文件路径和目标替换内容 FILE_PATH="/usr/lib/python3/dist-packages/middlewared/plugins/catalog/utils.py" OLD_URL="https://github.com/truenas/apps" NEW_URL="https://git.seembox.com/root/apps" # 检查文件是否存在 if [ ! -f "$FILE_PATH" ]; then echo "错误:文件 $FILE_PATH 不存在" sudo mount -o remount,ro /usr 2>/dev/null exit 1 fi # 备份原始文件 BACKUP_FILE="${FILE_PATH}.backup.$(date +%Y%m%d_%H%M%S)" echo "创建备份文件: $BACKUP_FILE" cp "$FILE_PATH" "$BACKUP_FILE" # 执行替换操作 echo "正在替换文件内容..." sed -i "s|${OLD_URL}|${NEW_URL}|g" "$FILE_PATH" # 检查替换是否成功 if [ $? -eq 0 ]; then echo "替换成功完成!" echo "已将所有的 '${OLD_URL}' 替换为 '${NEW_URL}'" # 验证替换结果 echo "验证替换结果:" grep -n "$NEW_URL" "$FILE_PATH" # 重新挂载为只读模式(可选) # sudo mount -o remount,ro /usr else echo "错误:替换操作失败" # 恢复备份 mv "$BACKUP_FILE" "$FILE_PATH" sudo mount -o remount,ro /usr 2>/dev/null exit 1 fi echo "操作完成!"