rsync分发脚本的应用
rync服务器
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台。
Rsync是一个快速和非常通用的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。它以其delta-transfer算法闻名。
rsync监听端口:873
rsync运行模式:C/S
(1)全量备份
所有数据全部传送
把原来的文件和新的文件一起统一传送
全量复制,效率低
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端,
完全备份方式:
(2)增量备份
在传输数据之前通过一些算法通过你有的数据和我有的数据进行对比,把不一样的数据通过网络传输
增量复制,效率较高
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端
增量备份方式:
scp(secure copy)安全拷贝
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法
scp -r
p
d
i
r
/
pdir/
pdir/fname
u
s
e
r
@
I
P
user@IP
user@IPhost:
p
d
i
r
/
pdir/
pdir/fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
(3)案例:
在DM101上,将DM101中/opt/module目录下的软件拷贝到DM102上。
[dmdba@DM101 /]$ scp -r /opt/module root@DM102:/opt/module
rsync与scp的对比
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
(1)基本语法
rsync -av $pdir/$fname $user@IP$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
选项参数说明
选项 功能
-a 归档拷贝
-v 显示复制过程
案例:
把DM101机器上的/opt/software目录同步到DM102服务器的root用户下的/opt/目录
[dmdba@DM101 opt]$ rsync -av /opt/software/ DM102:/opt/software
分发脚本工具xsync的创建
(a)rsync命令原始拷贝:
rsync -av /opt/module root@DM103:/opt/module
(3)脚本实现
(a)在/home/dmdba目录下创建xsync文件
cd /home/dmdba
vim xsync
编写如下代码:
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in DM101 DM102 DM103
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
(b)修改脚本 xsync 具有执行权限
chmod 775 xsync
(c)将脚本移动到/bin中,以便全局调用
sudo mv xsync /bin/
(d)测试脚本
sudo xsync /bin/xsync
更多资讯请上达梦技术社区了解: https://eco.dameng.com