概述
背景:基于hadoop的分布式部署 (具体请看文章),为了方便文件的分发与命令的执行,顾编制此脚本
服务器配置四台:(h101 192.168.44.101)(h102 192.168.44.102)(h103 192.168.44.103)(h104 192.168.44.104)
备注:h101可以ssh免密码登录进入 h102 h103 h104 .
一、命令分发
1、本机使用hadoop用户操作(建议初学者使用root(去掉所有命令中的sudo),完成后,再新建用户进行sudo配置后,再操作)
创建文件夹:shell
新建文件:xcall.sh (命令分发执行)
修改文件权限
2、xcall.sh 内的脚本编写:
#!/bin/bash
#echo hello world
#获取输入参数
params=$@
echo ${params}
#通过hostname来运行ssh命令 提前进行hostname和ip的绑定对应
for (( i = 101 ; i <= 104 ; i = $i + 1 )) ; do
echo ============ h$i $params ===============
ssh h$i $params
done
测试:(基于hadoop的分布式配置) (执行脚本加(./) 代表当前目录下)
当无需输入密码,成功,代表文件命令分发成功。
但为了可以在任何目录下执行次操作:
输入命令:$>echo $PATH
查看脚本可以自动识别的路径:
本地将脚本放置到:/usr/local/bin 目录下
进入任何目录测试: (备注:输入xc 后按tab键可以自动补全 说明配置成功)
二、文件分发
1、创建xsync.sh 文件分发脚本
2、修改xsync.sh
3、编写文件内容
#!/bin/bash
echo '文件分发中'
#查看当前文件是否目录
echo $#
if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi
p=$1
#echo p=$p
#注意此处执行linux命令 并非英文或中文的单引号 而是 tab键上单引号
dir=`dirname $p`
#echo dir=$dir
filename=`basename $p`
#echo filename=$filename
cd $dir
fullpath=`pwd -P .`
#echo fullpath=$fullpath
#获取当前服务器当前用户
user=`whoami`
for (( i = 102 ; i <= 104 ; i = $i + 1 )) ; do
echo =========== h$i $1 ======================
rsync -lr $p ${user}@h$i:$fullpath
done
4、测试、
备注:代表成功。
同时为了在任意目录均可执行,进行上述描述过的操作即可
最后
以上就是痴情汽车为你收集整理的多台服务器文件分发脚本和命令执行脚本一、命令分发的全部内容,希望文章能够帮你解决多台服务器文件分发脚本和命令执行脚本一、命令分发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复