yum install -y rsync
创建脚本
mkdir /data/tools/bigdata/mysh/
vi /data/tools/bigdata/mysh/distribution.sh
内容如下
#!/bin/bash
#集群节点间文件或文件夹分发脚本
USAGE="使用方法:sh distribution.sh /home/test.txt or sh distribution.sh /data/tools/bigdata/hadoop-2.7.7"
if [ $# -ne 1 ];then
echo $USAGE
exit 1
fi
#获取需要分发的文件名或者目录名
FDNAME=$(basename $1)
#获取需要分发的文件或目录的上级目录
PDIR=$(cd -P $(dirname $1);pwd)
#获取当前使用系统的用户名
USER=$(whoami)
#需要分发到的节点
NODES=("hadoop02" "hadoop03")
#循环分发
for NODE in ${NODES[*]};do
echo "--------分发至$NODE--------"
#如果目标节点的父级目录不存在,则创建出来
ssh $NODE "
if [ -d $PDIR ];then
. /etc/profile
else
mkdir $PDIR
fi"
rsync -av $PDIR/$FDNAME $USER@$NODE:$PDIR
done
echo "----------------------------------------------------------------------------------------"
echo -e "--------\033[5;32m $PDIR/$FDNAME 分发完成! \033[0m--------"
echo "----------------------------------------------------------------------------------------"
修改权限
chmod 777 /data/tools/bigdata/mysh/distribution.sh
添加环境变量
cd /etc/profile.d/
创建配置文件
vi /etc/profile.d/mysh.sh
加入:
export MYSH_HOME=/data/tools/bigdata/mysh/
export PATH=$MYSH_HOME:$PATH
配置立即生效
source /etc/profile
查看MYSH_HOME
echo $MYSH_HOME
注意
分发前要保证目标所在路径的父路径是存在的
目标安装rsync
ssh hadoop02 "yum install -y rsync"
ssh hadoop03 "yum install -y rsync"
目标创建文件夹
ssh hadoop02 "mkdir -p /data/tools/bigdata/"
ssh hadoop03 "mkdir -p /data/tools/bigdata/"
分发Zookeeper
distribution.sh $ZK_HOME
分发Hadoop
distribution.sh $HADOOP_HOME
分发Flink
distribution.sh $FLINK_HOME
分发配置文件
distribution.sh /etc/profile.d
ssh hadoop02 "source /etc/profile"
ssh hadoop03 "source /etc/profile"
示例
echo -e "\E[31;43m\033[4m 我是文字 \033[0m"
echo -e "--------\033[5;32m 分发完成! \033[0m--------"
首先解释\E[
,\033[
和m
\E[
和m
之间是颜色的控制字符串
3是前景色控制,后面跟的是颜色值(0-9),
4是背景色控制,后面跟的是颜色值(0-9),
前景色和背景色设定之间使用;
分隔开。
\033[
和m
之间是样式控制串
\033[
后面跟样式值(上面的例子中是4表示下划线),
接着是要彩色显示的文字串
\033[0m
前景色和背景色的颜色对应的编号(0-9)
样式控制数字编号为(1-9)