linux服务器集群分发scp与rsync
原创
©著作权归作者所有:来自51CTO博客作者wx61cd54ea3a202的原创作品,请联系作者获取转载授权,否则将追究法律责任
rsync和scp区别
1、用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去覆盖。
2、文件时间不会被更改
scp(secure copy)安全拷贝,-r为递归
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
把/software/netcat-0.7.1.tar.gz文件拷到hadoop101服务器的/software目录
scp -r /software/netcat-0.7.1.tar.gz hadoop101:/software
把根目录的testscp整个复制到hadoop101根目录
scp -r /testscp hadoop101:/
rsync远程同步工具,-a归档拷贝,-v显示复制过程
把根目录的testscp整个复制到hadoop101根目录
rsync -av /testscp hadoop101:/
xsync集群分发脚本
在/home/目录下创建xsync文件
vim xsync
先按i,然后粘贴以下内容
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop100 hadoop101 hadoop102
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
按esc,输入:wq保存退出
修改脚本 xsync 具有执行权限
把根目录的testscp整个复制到hadoop101、hadoop102根目录