**:transport_file.sh
#!/bin/bash###
#宣告變數
#sourfile="`echo $(eval echo '$') | cut -d: -f1`"
despath=`echo $* | cut -d: -f2-`
pwd=$(pwd)
file=$(pwd)/$(basename $0)
ip_file=$pwd/ipfile
f_rn() ')
}re_ho_in() ')
user=$(sed -n "$1"p $ip_file | awk '')
passwd=$(sed -n "$1"p $ip_file | awk '')
port=$(sed -n "$1"p $ip_file | awk '')
}### ------ 生成配置檔案 ------ ###
###生成ipfile檔案
#if [ ! -f $ip_file ]
then
cat > ipfile << 'eof'
ip user password port
eoffi
###生成expect.sh指令碼
#if [ ! -f remote2local_expect.sh ]
then
cat > remote2local_expect.sh << 'eof'
#!/usr/bin/expect -f
set user [lindex $argv 0]
set ip [lindex $argv 1]
set password [lindex $argv 2]
set des_path [lindex $argv 3]
set sou_file [lindex $argv 4]
set port [lindex $argv 5]
set timeout 10
spawn rsync -zvzp -e "ssh -p $" $@$:$ $des_path
expect
"password:"
" "
}interact
eof##第二個expect##
cat > local2remote_expect.sh << 'eof'
#!/usr/bin/expect -f
set user [lindex $argv 0]
set ip [lindex $argv 1]
set password [lindex $argv 2]
set des_path [lindex $argv 3]
set sou_file [lindex $argv 4]
set port [lindex $argv 5]
set timeout 10
spawn rsync -zvzp -e "ssh -p $" $ $@$:$des_path
expect
"password:"
" "
}interact
eof dos2unix remote2local_expect.sh
dos2unix local2remote_expect.sh
chmod 755 remote2local_expect.sh
chmod 755 local2remote_expect.sh
fi###生成expect完成###
### ------ 生成配置檔案結束 ------ ###
#友好提示
#use_info()
if [ -z $1 ];then
use_info
exit
fi##
#宣告file_recondn變數
f_rn
#######
#該指令碼的第乙個引數,表示是remote2local或local2remote
mark="$1"
#if [[ "$mark" =~ ^(-r2l|-r2l|-remote2local|-r|-r)$ ]]
then
for i in `seq 2 $file_recordn`
do re_ho_in $i
$pwd/remote2local_expect.sh $user $ip $passwd $despath "$sourfile" $port
# echo $user $ip $passwd "$despath" "$sourfile" $port
done
elif [[ "$mark" =~ ^(-l2r|-local2remote|-l|-l)$ ]]
then
for i in `seq 2 $file_recordn`
do re_ho_in $i
$pwd/local2remote_expect.sh $user $ip $passwd $despath $sourfile $port
#echo "$sourfile" $user $ip $passwd $despath
done
else
use_info
fi
使用方法:
1、執行指令碼先生成配置檔案,配置檔案共3個
ipfile
local2remote_expect.sh
remote2local_expect.sh
2、配置這三個檔案
配置ipfile
local2remote_expect.sh 和 remote2local_expect.sh 不需要任何配置。
3、傳輸檔案:從遠端主機傳輸到本地
上面兩條資訊,因為主機10.2.4.86上的檔案與70上的相同,已經由86傳輸到本地,故只出現乙個rsync的簡短描述資訊。
傳輸檔案同上,這裡使用了乙個萬用字元*
從本地上傳到遠端伺服器
ok了,可以用它來從遠端linux伺服器上備份日誌資料等。我的備份環境是這樣:我們需要每月備份平台日誌,備份到本地的windows備份機上,我使用cygwin來執行這個指令碼從遠端linux伺服器每個月執行一次來備份日誌。
shell 指令碼 自動批量分發檔案
1.安裝expect yum y install expect 2.建立iplist.txt檔案 要分發的ip位址 192.168.116.167 192.168.116.168 3.建立user.txt 裡面包含密碼 123456 123456 4.建立指令碼 test.sh,test.log t...
shell指令碼自動批量分發檔案
安裝expect yum y install expect 建立iplist.txt檔案 要分發的ip位址 192.168.20.181 192.168.20.182 建立user.txt 裡面包含密碼 123456 123456 建立指令碼 test.sh,test.log test.sh bin...
使用saltstack分發檔案
我們通過狀態管理檔案實現檔案分發,所有的管理檔案應該放在配置好的工作目錄下,vi etc salt master,開啟master檔案,設定環境配置目錄,我們設定為 srv salt 這樣salt就知道我們的配置管理檔案在什麼地方,就算我們不取消注釋salt也會自動定位在 srv salt下!之後在...