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版权协议,转载请附上原文出处链接和本声明。