updateapp.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. # 检查是否以root权限运行
  3. if [ "$EUID" -ne 0 ]; then
  4. echo "错误:请以root权限运行此脚本"
  5. exit 1
  6. fi
  7. # 重新挂载/usr为可写模式
  8. echo "重新挂载/usr为读写模式..."
  9. sudo mount -o remount,rw /usr
  10. # 检查挂载是否成功
  11. if [ $? -ne 0 ]; then
  12. echo "错误:无法重新挂载/usr为读写模式"
  13. exit 1
  14. fi
  15. # 定义文件路径和目标替换内容
  16. FILE_PATH="/usr/lib/python3/dist-packages/middlewared/plugins/catalog/utils.py"
  17. OLD_URL="https://github.com/truenas/apps"
  18. NEW_URL="https://git.seembox.com/root/apps"
  19. # 检查文件是否存在
  20. if [ ! -f "$FILE_PATH" ]; then
  21. echo "错误:文件 $FILE_PATH 不存在"
  22. sudo mount -o remount,ro /usr 2>/dev/null
  23. exit 1
  24. fi
  25. # 备份原始文件
  26. BACKUP_FILE="${FILE_PATH}.backup.$(date +%Y%m%d_%H%M%S)"
  27. echo "创建备份文件: $BACKUP_FILE"
  28. cp "$FILE_PATH" "$BACKUP_FILE"
  29. # 执行替换操作
  30. echo "正在替换文件内容..."
  31. sed -i "s|${OLD_URL}|${NEW_URL}|g" "$FILE_PATH"
  32. # 检查替换是否成功
  33. if [ $? -eq 0 ]; then
  34. echo "替换成功完成!"
  35. echo "已将所有的 '${OLD_URL}' 替换为 '${NEW_URL}'"
  36. # 验证替换结果
  37. echo "验证替换结果:"
  38. grep -n "$NEW_URL" "$FILE_PATH"
  39. # 重新挂载为只读模式(可选)
  40. # sudo mount -o remount,ro /usr
  41. else
  42. echo "错误:替换操作失败"
  43. # 恢复备份
  44. mv "$BACKUP_FILE" "$FILE_PATH"
  45. sudo mount -o remount,ro /usr 2>/dev/null
  46. exit 1
  47. fi
  48. echo "操作完成!"