使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。
需要修改的地方:hadoop250 hadoop251 hadoop252 hadoop253 hadoop254
这些是主机名,需要换成自己的主机名,注意中间是空格。
保存之后将权限改为777,可读写
shell脚本用法是:提前将可执行的命令语句写入一个文件中,这些命令会按照顺序执行,解释器逐行解释代码。
常见的脚本有:shell、python、PHP…
(用什么解释器就是什么脚本,这里使用的shell,也就是shell脚本)
也是像其他脚本语句一样有不同的语法格式。
一般以“#!/bin/bash”作为脚本开头
cd /home/yiduoyun/bin
vim xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop250 hadoop251 hadoop252 hadoop253 hadoop254
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
将权限改为777:
chmod 777 xsync
ls -l
分发完成之后去被分发的虚拟机就可以看到分发的文件了,实现一键分发。
(相当于scp命令远程拷贝文件),这个shell脚本可以一个指令发送到多台虚拟机。