Shell_ODPS-D2-2.0-集群分发、整体操作脚本xsync
191129版
(一)集群分发脚本xsync
rsync命令原始拷贝
rsync -rvl /opt/module root@hadoop103:/opt/
1.hadoop102 上编写脚本
[root@hadoop102 ~]# cd /usr/local/bin
[root@hadoop102 bin]# 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 i in hadoop103 hadoop104
do
echo -----------$i-------------
rsync -rvl $pdir/$fname $user@$i:$pdir
done
2.修改脚本执行权限
[root@hadoop102 ~]# chmod 777 xsync
3.修改脚本具有所有者和所有者所属组
[root@hadoop102 ~]# chown ataliyun:ataliyun xsync
4.编写测试案例
[root@hadoop102 bin]# su ataliyun
[ataliyun@hadoop102 ~]$ vim test.txt
内容随便写hello
5.测试脚本
[ataliyun@hadoop102 bin]$
[ataliyun@hadoop102 bin]$ xsync ~/test.txt
fname=test.txt
pdir=/home/ataliyun
-----------hadoop103-------------
ataliyun@hadoop103's password:
sending incremental file list
test.txt
sent 87 bytes received 31 bytes 18.15 bytes/sec
total size is 13 speedup is 0.11
-----------hadoop104-------------
ataliyun@hadoop104's password:
sending incremental file list
test.txt
sent 87 bytes received 31 bytes 2.71 bytes/sec
total size is 13 speedup is 0.11
6.验证脚本,hadoop103和104上验证test.txt发送成功
[root@hadoop104 ~]# su ataliyun
[ataliyun@hadoop104 root]$ ll
ls: cannot open directory .: Permission denied
[ataliyun@hadoop104 root]$ cd
[ataliyun@hadoop104 ~]$ ll
total 4
-rw-rw-r-- 1 ataliyun ataliyun 13 Mar 2 23:19 test.txt
[ataliyun@hadoop104 ~]$
(二)集群整体操作脚本xcall
1.hadoop102上创建xcall
[root@hadoop102 bin]# vim xcall
xcall脚本内容
#! /bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo -----------$i-----------
ssh $i "source /etc/profile ; $*"
done
2.修改执行脚本权限
[root@hadoop102 bin]# chmod +x xcall
3.修改脚本所有者和所有者所属组
[root@hadoop102 bin]# chown ataliyun:ataliyun xcall
4.测试
(因为只配置了普通用户ataliyun免密登录,所以用他来测试)
[ataliyun@hadoop102 bin]$ xcall ls /home/ataliyun
-----------hadoop102-----------
test.txt
-----------hadoop103-----------
test.txt
-----------hadoop104-----------
test.txt
注:仅笔记使用。