48 lines
1.9 KiB
Bash
Executable File
48 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 配置参数
|
||
LOCAL_DIR="/Users/aiotagro/vue/niumall/website"
|
||
REMOTE_USER="root"
|
||
REMOTE_HOST="49.51.70.206"
|
||
REMOTE_DIR="/data/website/niumall"
|
||
REMOTE_PASSWORD="Aiotjkl$7kl6756"
|
||
|
||
# 检查本地目录是否存在
|
||
if [ ! -d "$LOCAL_DIR" ]; then
|
||
echo "错误:本地目录 $LOCAL_DIR 不存在!"
|
||
exit 1
|
||
fi
|
||
|
||
# 使用标准 rsync 命令(需要手动输入密码)
|
||
echo "开始上传文件到远程服务器..."
|
||
echo "注意:请在提示时手动输入远程服务器密码:$REMOTE_PASSWORD"
|
||
|
||
echo "\n正在连接到 $REMOTE_USER@$REMOTE_HOST..."
|
||
# 使用基本的rsync命令,让用户手动输入密码
|
||
rsync -avz --progress --delete "$LOCAL_DIR/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
|
||
|
||
if [ $? -eq 0 ]; then
|
||
echo "上传完成!"
|
||
echo "\n======================================="
|
||
echo "提示:为了避免每次输入密码,建议设置SSH密钥认证"
|
||
echo "======================================="
|
||
echo "\n完整的SSH密钥配置步骤:"
|
||
echo "\n1. 生成SSH密钥对(按提示操作,默认选项即可):"
|
||
echo " ssh-keygen -t rsa -b 4096"
|
||
echo "\n2. 生成完成后,将公钥复制到远程服务器:"
|
||
echo " ssh-copy-id -i ~/.ssh/id_rsa.pub $REMOTE_USER@$REMOTE_HOST"
|
||
echo " (如果提示'No identities found',请使用上面的完整命令)"
|
||
echo "\n3. 测试免密码登录:"
|
||
echo " ssh $REMOTE_USER@$REMOTE_HOST"
|
||
echo "\n配置完成后,后续运行此脚本将不再需要输入密码!"
|
||
else
|
||
echo "上传失败!请检查网络连接、服务器配置和密码是否正确。"
|
||
echo "\n可能的解决方案:"
|
||
echo "1. 确保远程服务器IP地址正确:$REMOTE_HOST"
|
||
echo "2. 手动创建远程目录(如果不存在):"
|
||
echo " ssh $REMOTE_USER@$REMOTE_HOST 'mkdir -p $REMOTE_DIR'"
|
||
echo "3. 确保root用户有权限访问该目录"
|
||
echo "4. 检查防火墙设置,确保SSH端口(22)已开放"
|
||
exit 1
|
||
fi
|