xsync同步腳本的使用
1. 簡介:
在集群機器配置時册招,經(jīng)常需要將一個文件或目錄copy到同樣的多臺集群上抖单,如果一個一個機器去復制萎攒,比較麻煩。如果有一個辦法矛绘,通過一條命令就可以實現(xiàn)這個目的耍休,就簡單多了。xsync就是這樣一個同步腳本货矮。xsync其實是對rsync腳本的二次封裝羊精,腳本內(nèi)容可以根據(jù)自己需要進行修改。
2.配置集群hosts
- 在每臺機器配置hostname文件
[root@zookeeper20 conf]# hostnamectl set-hostname zookeeper20
- 配置hosts文件,修改完hostname后囚玫,將集群集群名稱都加入到/etc/hosts文件中喧锦,以后登錄不同機器读规,直接使用hostname而不用IP。
示例:
[root@zookeeper20 conf]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.0.20 zookeeper20
10.10.0.21 zookeeper21
10.10.0.22 zookeeper22
3.配置免密登錄
*使用命令ssh-keygen 生成rsa密鑰燃少,配置信息直接回車即可, 生成的密鑰默認在當前用戶主目錄的.ssh目錄下束亏。
密鑰文件有兩個:
id_rsa 存放著私鑰
id_rsa.pub 存放著公鑰
[root@zookeeper20 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kXclvgbcNBCbW9Z88eP1brP1TtPOc+YAuWTw0xi4QrU root@zkos1
The key’s randomart image is:
±–[RSA 2048]----+
| +o+ … |
| + O * o|
| + E B o.+|
| . o X …+|
| S o @ …|
| . + + …|
| . .o|
| BO|
| =O|
±—[SHA256]-----+
拷貝公鑰到對應主機
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server:/root/.ssh/
4.xsync腳本使用
- 安裝rsync腳本
xsync是對rsync腳本的二次封裝,所以需要先下載rsync命令阵具。
使用以下命令即可安裝
yum install -y rsync
- 添加xsync腳本
在用戶主目錄的bin目錄下添加腳本碍遍,腳本內(nèi)容如下:
#!/bin/sh
# 獲取輸入?yún)?shù)個數(shù),如果沒有參數(shù)阳液,直接退出
pcount=$#
if((pcount!=4)); then
echo Usage: $0 filename servername startno endno
exit;
fi
# 獲取文件名稱
p1=$1
fname=`basename $p1`
echo fname=$fname
# 獲取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 獲取當前用戶名稱
user=`whoami`
# 獲取hostname及起止號
slave=$2
startline=$3
endline=$4
# 循環(huán)
for((host=$startline; host<=$endline; host++)); do
echo $pdir/$fname $user@$slave$host:$pdir
echo ==================$slave$host==================
rsync -rvl $pdir/$fname $user@$slave$host:$pdir
done
————————————————
該腳本經(jīng)過修改怕敬,需要攜帶4個參數(shù),分別是
filename 待發(fā)送的文件或目錄名
servername 服務器前綴名
startno 服務器編號起始編號
endno 服務器編號終止編號
- 例如我要將當前目錄下的a.t文件同步到服務器zookeeper20帘皿、zookeeper21上东跪,使用命令
xsync a.t zookeeper 20 21
#############################################################