注意:本文档配置的为root用户集群操作脚本,如果要配置其他用户请修改相关配置。
集群分发脚本(xsync)
1.在/bin 目录下,创建xsync文件。
sudo sucd /binvi xsync
脚本内容如下:
#!/bin/bash# 1.获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0)); thenecho no args;exit;fi# 2.获取文件名称p1=$1fname=`basename $p1`echo fname=$fname# 3.获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir# 4.获取当前用户名称user=`whoami`# 5.循环for i in cfp-acrm-cdh-1 cfp-acrm-cdh-2 cfp-acrm-cdh-3doecho ------------------- $i --------------if [ "$i" = "${HOSTNAME}" ];thenecho "I'm the host ${HOSTNAME},do nothing."elsersync -rvl $pdir/$fname $user@$i:$pdirfidone
2.修改脚本 xsync 具有执行权限。
chmod +x xsync
3.脚本调用示例。
# 示例:将~/.bashrc分发到集群其他节点xsync ~/.bashrc
4.分发脚本。(选做)
# 使用root账户分发至其他节点scp -r /bin/xsync root@cfp-acrm-cdh-2:/bin/scp -r /bin/xsync root@cfp-acrm-cdh-3:/bin/
集群整体操作脚本(xcall)
1.在/bin 目录下,创建 xcall 文件。
sudo sucd /binvi xcall
脚本内容如下:
#!/bin/bashfor i in cfp-acrm-cdh-1 cfp-acrm-cdh-2 cfp-acrm-cdh-3doecho --------- $i ----------ssh $i "source /etc/profile ; $*"done
2.修改脚本 xcall 具有执行权限。
chmod +x xcall
3.脚本调用示例。
# 示例:在集群所有节点上运行“ ls /home ”xcall ls /home# 示例:获取集群所有节点的java进程xcall jps
4.分发脚本。(选做)
# 使用root账户分发至其他节点scp -r /bin/xcall root@cfp-acrm-cdh-2:/bin/scp -r /bin/xcall root@cfp-acrm-cdh-3:/bin/
