集群分发脚本xsync
生活随笔
收集整理的這篇文章主要介紹了
集群分发脚本xsync
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
編寫集群分發(fā)腳本xsync
1)scp 安全拷貝
1)定義:
scp可以實(shí)現(xiàn)服務(wù)器與服務(wù)器之間的數(shù)據(jù)拷貝
2)特點(diǎn)
scp會(huì)把整個(gè)文件對(duì)象賦值到目標(biāo)服務(wù)器上
3)基本語法
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 遞歸 要拷貝的文件路徑/名稱 目的用戶@主機(jī):目的路徑/名稱
例如
scp -r /opt/module/hadoop/* atguigu@hadoop102:/opt/module
2)rsync(推薦使用)
注:想使用rsync命令,必須提前安裝
安裝語法
yum install rsync
1)特點(diǎn)
只會(huì)對(duì)差異文件進(jìn)行更新,而scp是把所有文件都復(fù)制過去
2)基本語法
rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname
命令 選項(xiàng)參數(shù) 要拷貝的文件路徑/名稱 目的用戶@主機(jī):目的路徑/名稱
例如
rsync -av /opt/software/* atguigu@hadoop103:/opt/software(這里要寫父目錄的路徑)
選項(xiàng)參數(shù)說明
| 選項(xiàng) | 功能 |
|---|---|
| -a | 歸檔拷貝(類似于遞歸) |
| -v | 顯示復(fù)制過程 |
編寫集群分發(fā)腳本(重點(diǎn))
1)需求:需要將當(dāng)前文件或目錄同步到當(dāng)前集群所有節(jié)點(diǎn)
2)思路
使用原始命令需要發(fā)送N次,可以使用shell腳本,把原始命令放在循環(huán)內(nèi),可以重復(fù)使用
采用rsync實(shí)現(xiàn),因?yàn)閞sync只會(huì)發(fā)送有差異的數(shù)據(jù)
3)實(shí)現(xiàn)腳本
#!/bin/bash
#1. 判斷參數(shù)個(gè)數(shù)
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍歷集群所有機(jī)器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍歷所有目錄,挨個(gè)發(fā)送
for file in $@
do
#4. 判斷文件是否存在
if [ -e $file ]
then
#5. 獲取父目錄
pdir=$(cd -P $(dirname $file); pwd)
#6. 獲取當(dāng)前文件的名稱
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
1)修改腳本xsync具有執(zhí)行權(quán)限
[atguigu@hadoop102 bin]$ chmod +x xsync
2)將腳本復(fù)制到/bin中,以便全局調(diào)用
如果當(dāng)前用戶沒有bin目錄,可以手動(dòng)創(chuàng)建
[atguigu@hadoop102 bin]$ sudo cp xsync /bin/
腳本編寫完成,可以測試了
總結(jié)
以上是生活随笔為你收集整理的集群分发脚本xsync的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天天基金
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?