遠端同步指令碼的編寫

2021-09-24 05:57:51 字數 1372 閱讀 1804

用於將檔案在集群中進行分發的指令碼,適用於批量操作。

#!/bin/bash

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

pcount=$#

if((pcount==0))

;then

echo no args;

exit;fi

#2.獲取檔名稱

p1=$1

fname=

`basename $p1`

echo fname=

$fname

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

pdir=

`cd -p $(dirname $p1)

;pwd

`echo dir=

$dir

#4.獲取當前使用者名稱

user=

`whoami

`#5. 迴圈

for((host=

6003

; host<

6005

; host++));

doecho --------------------host$host------------------------

rsync -rvl $pdir/$fname

$user@host

$host

:$pdir

done

此指令碼不做過多解釋,是從host6002向,6003與6004節點分發的。這裡選擇了在6002上,作文初始化檔案的節點,所以我們上傳的軟體、安裝的軟體都會在這個節點上安裝部署。需要同步的軟體安裝目錄庫以及配置檔案,都會用這個xsync指令碼去進行分發。

我們要求此批量的同步指令碼對與此普通使用者能夠處處可用,那麼將此指令碼放到**才能一處生成處處可用呢?

沒錯,放的位置就是 此使用者的環境變數下

$ echo

$path

/opt/module/hadoop-2.7.2/sbin:/opt/module/jdk1.8.0_144/bin:

/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:

/sbin:/opt/module/hadoop-2.7.2/bin:/home/lizhi/bin

$ cd /home/lizhi/

$ mkdir bin

$ touch xsync #命名是自定義的(不要與linux內建的指令碼檔案重合),將上述指令碼內容複製進來就可以了

注意:這只是同使用者批量分發指令碼,但是有乙個問題就是我對遠端節點進行檔案分發的時候需要做的就是每分發到乙個節點的時候,都會要求輸入對方節點的遠端登入(ssh遠端登入)密碼

簡單的指令碼編寫

1 練習 寫乙個指令碼 判斷當前系統上是否有使用者的預設shell為bash 如果有,就顯示有多少個這類使用者 否則,就顯示沒有這類使用者 grep bash etc passwd dev null retval if retval eq 0 then if grep bash etc passwd...

指令碼編寫 編寫 LLDB 偵錯程式指令碼

lldb 偵錯程式提供對 python 指令碼的支援,可以執行一些自動化的操作,提供工作效率。本文從 helloworld 開始學習如何編寫 lldb 指令碼。編寫第乙個 lldb 指令碼 下面我們來實際操作編寫 lldb 偵錯程式指令碼。在計算機上建立乙個目錄用於存指令碼檔案,比如我們在 user...

windows bat指令碼編寫

獲取當前所在目錄完全路徑 echo off echo 完全路徑 dp0 pause color設定控制台前景和背景顏色 可同時顯示各種顏色 echo off chcp 437 nul graftabl 936 nul if not exist config.nt copy windir system...