Shell--一鍵分發腳本----解密

Shell–一鍵分發腳本----解密

製作一鍵分發腳本

在路徑usr/local/bin目錄下創建腳本名字自己定,我的是xsync
在這裏插入圖片描述

#!/bin/bash
#1. 判斷參數個數
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍歷集羣所有機器
for host in hadoop101 hadoop102 hadoop103
do
  echo ====================  $host  ====================
  #3. 遍歷所有目錄,挨個發送
  for file in $@
  do
    #4 判斷文件是否存在
    if [ -e $file ]
    then
      #5. 獲取父目錄
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 獲取當前文件的名稱
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

腳本核心原理

這就是個簡單的腳本,你們自己還可以完善,就是簡單的實現分發的功能。
就這句:rsync -av pdir/pdir/pdir/fname host:host:host:pdir
爲什麼呢?
我們可以玩個遊戲,我們現在有三臺虛擬機,我想在103上面拿101上面的東西,在知道他密碼的情況下,不經過他同意,可不可以,我們設置過免密了,如果沒設置我們就得輸入密碼才能傳,這裏我們是直接就傳輸了,你們可以把密鑰刪了,玩一把
首先我們在Hadoop101的上創建一個文件
命令:
cd /opt/moudle/ 進入到module中
然後我們創建一個aaa.txt文件裏面寫上1234567

在這裏插入圖片描述
在103上輸入命令去101上拿,還是那句話,我設置免密了,瞬間就能拿到,並放到我的103上的module中,如果你們想玩不帶密碼的,把公鑰刪了。
我們去看一下103中是不是什麼都沒有
在這裏插入圖片描述
沒有,我就去101上拿,看能不能拿到,很不巧,拿到了。
在這裏插入圖片描述

思考題
我能不能在102上面講101的東西給103?假如你在單位,同時知道了同事A的密碼和同事B的密碼,能不能不經過他倆同意,將他們的資料,文件,相互傳輸呢?自己可以試試,不會了可以私信,或者底下留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章