Linux之 自定義指令碼實現在集群上分發檔案

2021-09-27 12:03:34 字數 1852 閱讀 4350

背景:在維護大型伺服器集群的時候,如果登入每台伺服器進行檔案建立操作,那就太麻煩了,此時,我們可以寫乙個指令碼,在集群中的某台伺服器上建立檔案,之後利用指令碼將檔案複製到集群中的其他伺服器上。

作用:迴圈複製檔案到所有節點的相同目錄下。

執行指令碼檔案的前提:集群中的主機配置了主機名與ip位址的對映關係,各台主機能夠使用主機名通訊,同時配置了ssh免密碼登入。

核心命令使用的是rsync

xsync指令碼檔案的內容如下:

#!/bin/bash

pcount=$#;

if (( pcount<0 )) ; then

echo "no args";

exit;

fi#獲取第乙個引數

p1=$1;

fname=`basename $p1`

#獲取檔案的上級目錄

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

#獲取當前使用者名稱

cuser=`whoami`

#迴圈處理

for (( host=100 ; host<=105 ; host=host+1 )) ; do

#echo $pdir/$fname $cuser@binghe$host:$pdir

#列印當前複製檔案的目標主機名

echo ---------------binghe$host-------------------

rsync -rvl $pdir/$fname $cuser@binghe$host:$pdir

done

chmod a+x ./xsync
使用示例:

注意:這裡我只是列印了迴圈中的資訊,如果在指令碼的迴圈中執行的是rsync -rvl $pdir/$fname $cuser@binghe$host:$pdir命令,則可以將當前伺服器上的檔案複製到集群中其他伺服器的相同目錄下。

在命令列輸入如下命令執行xsync指令碼。

./xsync /usr/local/src/memcached-1.4.24.tar.gz
在命令列列印出如下資訊:

----------------binghe100---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe100:/usr/local/src

----------------binghe101---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe101:/usr/local/src

----------------binghe102---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe102:/usr/local/src

----------------binghe103---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe103:/usr/local/src

----------------binghe104---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe104:/usr/local/src

----------------binghe105---------------

/usr/local/src/memcached-1.4.24.tar.gz root@binghe105:/usr/local/src

PowerDesigner 自定義指令碼

原文 code 表名 tname 生成後的效果預覽 表名 tname if not exists select 1 from sysobjects where id object id qualifier table and type u begin create table qualifier t...

monkey自定義指令碼

1 啟動activity launchactivity 包名,activity名 通過adb shell dumpsys window findstr mcurrentfocus 來獲取包名和activity 2 點選 tap tap x,y,time x座標和y座標,time為點選時間,單位ms ...

RDLC之自定義資料集一

標題 rdlc之自定義資料集 時間 2008年7月12日 目的 學習通過程式控制rdlc的資料集 內容 呈現職工資料,如圖 emp info.jpg 步驟 1 新建乙個web專案,如圖 new project.jpg 2 新增報表,如 圖 new report.jpg 3 新增資料集,如圖 new ...