Hadoop3.2.2集群分发同步脚本
程序员文章站
2024-02-25 16:26:03
...
一、scp(secure copy)
- scp可以实现服务器与服务器之间的文件拷贝
- 基本语法
# -r是递归
# pdir是目录名,filename是文件名
# user是目标服务器的用户名,hostip是目标服务器ip地址
scp -r $pdir/$filename $user@hostip:$pdir/$filename
scp -r /opt/hadoop3.2.2 [email protected]:/opt/hadoop3.2.2
- 复制完成,如果需要修改文件所属组,使用如下命令。本人都是root操作,故不作任何的文件所属组修改1
sudo chown qiuhongye:qiuhongye -R /opt/hadoop3.2.2
二、rsync(远程同步工具)
- 速度快,只对差异文件更新
- 基本语法
# -r递归,-v显示复制过程,-l拷贝符号链接
rsync -rvl $pdir/$filename $user@hostip:$pdir/$filename
- hadoop3.2.2集群,编写文件同步脚本xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 这里加-P参数,可以将link类文件指向真实的路径。从而获取全路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 指定目标用户名称
user=`root`
#5 循环
for((host=100; host<102; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
# 让脚本具备执行权限
chmod 777 xsync
下一篇: 求数组的长度【转】