Lesson7 Hadoop 完全分佈式 集羣分發腳本編寫 xsync - 集羣分發工具 scp、rsync 介紹及安裝使用

一、 集羣分發介紹: 

將一臺主機上的配置、文件分發到其它主機上,避免重複操作。

二、  集羣分發工具: 

1.  scp的安裝: yum -y install openssh-clients ,所有主機都要安裝。

 命令格式:scp [參數] 本地文件 遠程帳戶@遠程 IP 地址:遠程目錄,參數如下

-v  顯示詳細的連接進度
-P  指定遠程主機的 sshd 端口號
-r  用於傳送文件夾
-6  使用 IPv6 協議

 

 

 添加主機名與 IP 映射

 編輯文件 vim /etc/host ,添加主機名與 ip 的映射,即可直接使用 主機名傳輸文件

2.  rsync 的使用:centos7默認已安裝格式同 scp ,參數說明參考上文,相當於 scp 升級版。

3.  ansible:自動運維工具,本文暫不作介紹。 

三、 集羣分發腳本編寫:

利用 rsync 編寫一個腳本,自動將文件分發到所有主機的同一文件夾。

1.  編寫文件:在 /usr/local/bin 下新建一個文件,命名爲 xsync,文件內容如下。

cd /usr/local/bin
vim xsync

注意根據實際情況修改第 5 部分的 host 值和主機名。 

#!/bin/bash

if [[ -x $(command -v rsync) ]]; then
	echo yes > /dev/null
else
	echo no rsync found!
	exit 1
fi


#1. 獲取輸入參數個數;如果沒有參數,直接退出

pcount=$#
if (( pcount==0 )); then
	echo no args!
	exit
fi

#2. 獲取文件名稱
p1=$1
fname=$(basename $p1)
echo fname=$name

#3. 獲取文件絕對路徑
pdir=$(cd -P $(dirname $p1); pwd)
echo pdir=$pdir

#4. 獲取當前用戶名
usr=$(whoami)

#5. 循環體
for (( host = 2; host < 4; host++ )); do
	echo ---node${host}---
	rsync -rvl $pdir/$fname ${usr}@node${host}:${pdir}
	#statements
done

 2.  添加權限:編寫完以後保存,給文件添加可執行權限。

chmod a+x xsync

 3.  使用方法:進入要分發的文件所在的文件夾,輸入 xsync filename 即可。

      示例:將 node1 上的 demo3 文件分發給 node2 和 node3

      

      完成分發後即可在其它主機同一文件夾下看到文件

      

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章