0
点赞
收藏
分享

微信扫一扫

分享一个linux服务器迁移文件脚本

#!/bin/bash
# 定义源和目标服务器
SRC_SERVER=""
DEST_SERVER="root@124.71.7.81"
# 定义源和目标目录
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

举报

相关推荐

0 条评论