Files
dock/试验用脚本
2025-11-03 00:33:16 +08:00

103 lines
2.8 KiB
Plaintext

cat > fix-syncthing-install.sh << 'EOF'
#!/bin/bash
echo "========================================"
echo " Syncthing 修复安装脚本"
echo "========================================"
# 修复系统依赖
echo "安装系统依赖..."
apt update
apt install -y gnupg2 curl wget
# 清理之前的错误配置
echo "清理旧配置..."
systemctl stop syncthing 2>/dev/null
systemctl disable syncthing 2>/dev/null
rm -f /etc/systemd/system/syncthing.service
rm -f /etc/apt/sources.list.d/syncthing.list
# 方法1: 使用通用安装(推荐)
echo "使用通用安装方法..."
cd /tmp
LATEST_VERSION=$(curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
ARCH=$(uname -m)
case $ARCH in
x86_64) ARCH="amd64" ;;
aarch64) ARCH="arm64" ;;
armv7l) ARCH="armv7" ;;
*) ARCH="amd64" ;;
esac
echo "下载 Syncthing $LATEST_VERSION ($ARCH)"
wget -q https://github.com/syncthing/syncthing/releases/download/${LATEST_VERSION}/syncthing-linux-${ARCH}-${LATEST_VERSION}.tar.gz
tar -xzf syncthing-linux-${ARCH}-${LATEST_VERSION}.tar.gz
cp syncthing-linux-${ARCH}-${LATEST_VERSION}/syncthing /usr/local/bin/
chmod +x /usr/local/bin/syncthing
# 创建配置目录
echo "创建配置目录..."
useradd -r -s /bin/false -d /var/lib/syncthing -m syncthing 2>/dev/null || true
mkdir -p /var/lib/syncthing/config
chown -R syncthing:syncthing /var/lib/syncthing
# 创建正确的服务文件
echo "创建系统服务..."
cat > /etc/systemd/system/syncthing.service << 'SERVICE'
[Unit]
Description=Syncthing
Documentation=man:syncthing(1)
After=network.target
[Service]
User=syncthing
ExecStart=/usr/local/bin/syncthing serve --no-browser --no-restart --home=/var/lib/syncthing/config
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
SERVICE
# 启动服务
echo "启动服务..."
systemctl daemon-reload
systemctl enable syncthing
systemctl start syncthing
sleep 3
if systemctl is-active --quiet syncthing; then
echo "✓ Syncthing 服务启动成功"
else
echo "查看服务状态..."
systemctl status syncthing -l --no-pager
echo "尝试手动启动..."
sudo -u syncthing /usr/local/bin/syncthing -generate="/var/lib/syncthing/config"
systemctl start syncthing
fi
# 显示信息
echo ""
echo "========================================"
echo " Syncthing 安装完成!"
echo "========================================"
IP=$(hostname -I | awk '{print $1}')
echo "访问地址: https://$IP:8384"
echo ""
echo "管理命令:"
echo " systemctl start syncthing"
echo " systemctl stop syncthing"
echo " systemctl restart syncthing"
echo " systemctl status syncthing"
echo ""
echo "查看运行状态:"
systemctl status syncthing --no-pager -l
EOF
chmod +x fix-syncthing-install.sh
./fix-syncthing-install.sh