1.克隆、改IP (在etc/hosts添加对应IP和host必须在root用户下)
192.168.81.102 hadoop102
192.168.81.103 hadoop103
192.168.81.104 hadoop104
2.scp完全copy(只是复制内容,没有复制时间戳)
scp数据拷贝(可以远程拷贝)
基本拷贝cp -r source destination cp -r /abc /def
递归 源数据 目标数据
远程拷贝:
a、在hadoop101上,将hadoop101中 /opt/module 目录下的软件拷贝到 hadoop102上。
[hadoop@hadoop101 /]$ scp -r /opt/module root@hadoop102:/opt/module
b、在hadoop103上,将hadoop101服务器上的/opt/module 目录下的软件拷贝到 hadoop103上。
[hadoop@hadoop103 opt]$sudo scp -r hadoop@hadoop101:/opt/module root@hadoop103:/opt/module
3.rsync (不可以远程拷贝)
-a 归档拷贝(完完全全拷贝,包括时间戳)
-v 显示复制过程
源目录和目标目录不能同时为远程
rsync -av hadoop101:/opt/module/hadoop-2.7.2 /opt/module
rsync -av hadoop101:/opt/module/jdk1.8.0_221 /opt/module
(只能在103.104.105上执行 且/opt/module目录下)
添加脚本到vim xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=102; host<105; host++)); do
#echo $pdir/$fname $user@hadoop$host:$pdir
echo --------------- hadoop$host ----------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
[wangawen@hadoop102 module]basename /opt/module
module
basename返回最后一级目录
[root@hadoop102 module]# dirname /opt/module/jdk1.8.0_221/
/opt/module
dirname 返回目录
[root@hadoop102 module]# dirname jdk1.8.0_221/
.
点表示本级目录
cd -P 追踪绝对路径
Linux 中ln(link)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
-s 软链接
ln [参数][源文件或目录][目标文件或目录]
4.vim xsync (放脚本) xsync文件夹在/home/atguigu(102.103.104)
chmod +x xsync
ll
./xsync xsync
至此脚本分发可以用xsync
cd -是返回到上一次的工作目录
cd -P 追踪绝对路径
5.sudo cp xsync /bin
[wangawen@hadoop102 ~]$ sudo cp xsync /bin
sudo rsync -av /bin/xsync hadoop101:/bin(103发给101)
从101把集群分发给102.103.104
xsync hadoop-2.7.2(module下)
xsync jdk1.8.0_221
sudo xsync /etc/profile
source /etc/profile
检查三个版本是否一样(正确)