1. 程式人生 > 其它 >5.【xsync.sh】叢集群發文件指令碼

5.【xsync.sh】叢集群發文件指令碼

#! /bin/bash

# 1.判斷引數個數
if [ $# -lt 1 ]
    then
        echo 'Not Enougth Arugement!'
        exit;
fi

# 2.遍歷叢集所有機器
for host in  pc001 pc002 pc003
do
    if [ $HOSTNAME != $host ]
        then
            echo "==================$host====================="
            # 3.遍歷指定的目錄
            for file in $@
            do
                # 4.判斷指定檔案是否存在
                if [ -e $file ]
                    then
                        # 4.1 獲取父目錄
                        pdir=$(cd -P $(dirname $file);pwd)
                        # 4.2 獲取檔名稱
                        fname=$(basename $file)
                        # 4.3 對目標host建立對應的目錄
                        ssh $host "mkdir -p $pdir"
                        # rsync同步檔案
                        rsync -av $pdir/$fname $host:$pdir
                    else
                        echo "The file $file is not exists!"
                fi
            done
    fi

done