Hadoop之xsync脚本撰写、测试与使用
1.在hadoop1002的home/admin/bin创建xsync
[admin@hadoop1002 module]$ cd ~
[admin@hadoop1002 ~]$ pwd
/home/admin
[admin@hadoop1002 ~]$ mkdir bin
[admin@hadoop1002 ~]$ vim bin/xsync
2.撰写xsync脚本
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop1002 hadoop1003 hadoop1004
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
3.修改xsync执行权限
[admin@hadoop1002 ~]$ cd bin
[admin@hadoop1002 bin]$ ll
总用量 4
-rw-rw-r--. 1 admin admin 896 10月 26 15:12 xsync
[admin@hadoop1002 bin]$ chmod 777 xsync
4.测试
[admin@hadoop1002 bin]$ cd ~
[admin@hadoop1002 ~]$ xsync /home/admin/bin/
5.将环境变量从hadoop1002分发给其他两个虚拟机
[admin@hadoop1002 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
6.分别在hadoop1003和hadoop1004上让环境变量文件(my_env.sh)生效
[admin@hadoop1003 ~]$ source /etc/profile
[admin@hadoop1004 ~]$ source /etc/profile
以上就是xsync脚本的撰写和测试等操作,感谢大家的阅读,如有问题请发表评论。