lunix服务器如果需要迁移大量文件,可以使用rsync远程迁移

脚本如下

#!/bin/bash
# 定义源和目标服务器
SRC_SERVER=""
#此处修改ip
DEST_SERVER="root@ip"
# 定义源和目标目录
SRC_DIR="/home"
DEST_DIR="/home"
# 定义rsync命令选项 1500是 1500kb
RSYNC_OPTS="-avz --partial --progress --delete --bwlimit=1500"
# 定义日志文件路径
LOG_FILE="/data/rsyns/rsync.log"
# 检查上一次同步是否完成
if [ -e /tmp/rsync.pid ]; then
    echo "上一次同步未完成,请稍后再试。" >> $LOG_FILE
    # 检查是否存在部分传输的文件
    if [ -d "$SRC_DIR/.rsync-partial" ]; then
        echo "检测到部分传输的文件,正在恢复同步..." >> $LOG_FILE
        # 使用rsync和SSH远程同步数据,使用--partial和--append选项恢复传输
        if rsync $RSYNC_OPTS --log-file=$LOG_FILE --partial --append $SRC_DIR/ $DEST_SERVER:$DEST_DIR/; then
            echo "数据同步成功。" >> $LOG_FILE
        else
            echo "数据同步失败。" >> $LOG_FILE
        fi
    else
        exit 1
    fi
    exit 0
fi
# 记录当前同步进程ID
echo $$ > /tmp/rsync.pid
# 使用rsync和SSH远程同步数据
if rsync $RSYNC_OPTS --log-file=$LOG_FILE --partial-dir=.rsync-partial $SRC_DIR/ $DEST_SERVER:$DEST_DIR/; then
    echo "数据同步成功。" >> $LOG_FILE
else
    echo "数据同步失败。" >> $LOG_FILE
fi
# 删除同步进程ID文件
rm /tmp/rsync.pid