linux rsync(文件远程增量同步、集群中文件同步)


1. rsync简介

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

安装rsync:

yum install -y rsync

2. rsync语法

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

参数说明:

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

如:
(1)把本地/home/m目录同步到192.168.42.103服务器相同目录下

rsync    -av      /home/m/*            root@192.168.42.103:/home/m

在这里插入图片描述
(2)修改a.txt文件再同步(增量同步)

在这里插入图片描述

3 集群中文件同步

当前服务器为hadoop102,同步文件到hadoop103、hadoop104(前提:配置ssh免密登录)

#!/bin/bash
if [ $# -lt 1 ]
then
  echo "缺少参数,文件或目录列表"
  exit;
fi
for host in  hadoop103 hadoop104
do
  echo ====================  $host  ====================
  for file in $@
  do
    if [ -e $file ]
    then
      pdir=$(cd -P $(dirname $file); pwd)
      fname=$(basename $file)
      ssh $host "sudo mkdir -p $pdir;sudo chown $USER:$USER -R $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done


版权声明:本文为javahelpyou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。