1.單台傳輸指令碼
代碼如下 |
複製代碼 |
cat /root/soft_shell/allscp.sh #!/usr/bin/expect if {$argc < 2} { send_user "usage: $argv0 src_file username ip dest_file passwordn" exit } ##set key [lindex $argv 0] set src_file [lindex $argv 0] set username [lindex $argv 1] set host_ip [lindex $argv 2] set dest_file [lindex $argv 3] set password [lindex $argv 4] ##spawn scp -i $key $src_file $username@$host_ip:$dest_file spawn scp $src_file $username@$host_ip:$dest_file expect { "(yes/no)?" { send "yesn" expect "password:" {send "$passwordn"} } "password:" { send "$passwordn" } } expect "100%" expect eof |
2.多台傳輸指令碼
代碼如下 |
複製代碼 |
cat /root/soft_shell/mainscp.sh #!/bin/bash host_list="server_list.conf" cat $host_list | while read line do host_ip=`echo $line|awk '{print $1}'` username=`echo $line|awk '{print $2}'` password=`echo $line|awk '{print $3}'` src_file=`echo $line|awk '{print $4}'` dest_file=`echo $line|awk '{print $5}'` ##key=`echo $line|awk '{print $6}'` ##./allscp.sh $key $src_file $username $host_ip $dest_file $password ./allscp.sh $src_file $username $host_ip $dest_file $password done |
3.伺服器資訊檔
代碼如下 |
複製代碼 |
cat /root/soft_shell/server_list.conf
|
格式為:
ip 使用者名稱 密碼 源檔案 目標檔案地址
ps:以上3個檔案,相信大家都看出來了,都是放在同一檔案夾下面的.我本地測試只用ssh密碼,沒有加上ssh key,如果要用上跟我們公司正式環境一樣的安全方式(ssh密碼+key,才能登入伺服器),那麼請自己修改指令檔,我比較懶這裡就不說得那麼詳細了.
最後來張效果圖吧,免得大家說我指令碼有問題.