#!/bin/bash
# 定义源和目标服务器
SRC_SERVER=""
DEST_SERVER="[email protected]"
# 定义源和目标目录
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
标签:rsync,LOG,--,echo,FILE,linux,服务器,迁移,DIR
From: https://blog.51cto.com/u_15266301/8892389