Shell_ODPS-D2-2-离线数仓集群分发、整体操作脚本xsync

Shell_ODPS-D2-2.0-集群分发、整体操作脚本xsync

191129版

(一)集群分发脚本xsync

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

注:仅做笔记使用。

你可能感兴趣的:(Shell,大数据,项目,shell,odps,大数据)