在該文件中編寫以下代碼javascript
#!/bin/bash #1 獲取輸入參數個數,若是沒有參數,直接退出
# $# :獲取當前輸入變量的個數 pcount=$# if((pcount==0)); then #爲0即未輸入,退出 echo no args; exit; fi
#2 獲取文件名稱,$1獲取第一個輸入的數據 p1=$1
# basename:獲取文件自身的名稱:如 basename /opt/bin/hello.txt 輸出爲:hello.txt fname=`basename $p1` echo fname=$fname #3 獲取上級目錄到絕對路徑
# dirname:獲取文件的目錄名:如dirname /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
# 輸出爲:/opt/module/hadoop-2.7.2/etc/hadoop 即這個文件前面的路徑名
# cd -P $(dirname $p1) :若是這是條軟連接(相似快捷方式)的地址 cd -P 就到達這個軟連接所指的真實地址,再pwd得到絕對路徑
pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 獲取當前用戶名稱
# whoami指令顯示當前用戶名稱,(個人虛擬機都是同樣的用戶名,若是同樣,可設置爲local) user=`whoami`
#5 循環 個人是102分發到103,104 for((host=103; host<105; host++));
do echo ------------------- hadoop$host --------------
# rsync:遠程同步工具 -r:遞歸 -v:view rsync -rvl $pdir/$fname $user@hadoop$host:$pdir done
保存文件以後,使其具備執行權限:chmod 777 xsyncjava
最後執行該腳本:xsync /home/xxx/binbash
若是顯示無該路徑,那麼要配好環境變量裏的path要包含上述的目的路徑。工具
歡迎留言交流!個人大數據菜鳥交流羣(本羣剛起步,有你更精彩):875910806oop