shell xsync指令碼同步檔案

2021-10-10 12:56:42 字數 1259 閱讀 7754

前言:因為最近在安裝zk集群,發現單純使用scp或rsync命令同步檔案非常麻煩,學習下編寫乙個名為xsync指令碼,並附上遇到的問題及解決方案,效率飛快。

環境:三颱伺服器

分別叫ni103,ni104,ni105,後面有配置要用到主機名

**

#!/bin/sh

## 獲取輸入引數個數,如果沒有引數,直接退出

pcount=$#

if((pcount==0)); then

echo no args...;

exit;

fi# 獲取檔名稱

p1=$1

fname=`basename $p1`

echo fname=$fname

# 獲取上級目錄到絕對路徑

pdir=`cd -p $(dirname $p1); pwd`

echo pdir=$pdir

# 獲取當前使用者名稱

user=`whoami`

# 迴圈

for((host=104; host<=105; host++)); do

echo $pdir/$fname $user@ni$host:$pdir

echo ***************===@ni$host***************===

rsync -rvl $pdir/$fname $user@ni$host:$pdir

done

#備註:這裡的ni對應自己主機名,需要做相應修改。另外,for迴圈中的host的邊界值

遇到的問題

當我想要同步zk資料夾

xsync apache-zookeeper-3.6.2-bin/
報錯:

意思無法解析主機名:名稱或服務未知。在網上翻了各種大神的文章,終於還是解決了

方案:

vim /etc/hosts 配置你要用的主機名及ip位址,然後重新執行xsync就ok了。

Oceanbase多台主機間用指令碼同步檔案的方法

bin bash dir dirname 0 bin dir bin etc dir etc lib dir lib remote addr xiao 10.1.1.1 tb ob test2 cs cmd chunkserver cs conf chunkserver.conf ms cmd me...

winscp 同步 Winscp指令碼同步檔案

winscp.exe console script sample.txt automatically answer all prompts negatively not to stall the script on errors option echo on off option echo off ...

hadoop之同步指令碼

1 linux 任何地方執行指令碼配置方法 1 用 vim bashrc 命令打 配置 自己存放指令碼目錄,我的如下 export path home alvin bin path 最後,再使用 source 命令使我們的修改生效 source bashrc 2 將指令碼所在路徑新增到 profil...