編寫集群分發腳本xsync 時的一些理解!


在該文件中編寫如下代碼

#!/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 xsync

最后執行該腳本:xsync /home/xxx/bin

如果顯示無該路徑,那么要配好環境變量里的path要包含上述的目的路徑。

 歡迎留言交流!我的大數據菜鳥交流群(本群剛起步,有你更精彩):875910806


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM