linux rsync文件远程增量同步、编写集群文件同步脚本xsync.sh

文章目录

    • 1. rsync简介
    • 2. rsync语法
    • 3. 编写集群文件同步脚本xsync.sh


1. rsync简介

  rsync 即remote sync(远程同步),实现本地主机和远程主机上的文件同步,但不能实现远程路径1到远程路径2之间的同步(使用scp)。使用 rsync 命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会覆盖

安装rsync:

yum install -y rsync

检测rsync:

rpm -qa|grep rsync

2. rsync语法

rsync    -av       目录/文件名            远程主机用户名@主机ip或域名:目录/文件名

参数说明:

选项 功能
-a 归档拷贝
-v 显示复制过程

3. 编写集群文件同步脚本xsync.sh

集群服务器为lab-cdh-ylxx0、lab-cdh-ylxx1、lab-cdh-ylxx2(前提:配置ssh免密登录)

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in lab-cdh-ylxx0 lab-cdh-ylxx1 lab-cdh-ylxx2
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送

    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done


你可能感兴趣的:(linux,命令,linux)