linux脚本批量复制文件,shell实现scp批量下发文件
本文系統(tǒng)CentOS6.0
Expect是Unix系統(tǒng)中用來(lái)進(jìn)行自動(dòng)化控制和測(cè)試的軟件工具,由Don Libes制作,作為Tcl腳本語(yǔ)言的一個(gè)擴(kuò)展,應(yīng)用在交互式軟件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。該工具利用Unix偽終端包裝其子進(jìn)程,允許任意程序通過(guò)終端接入進(jìn)行自動(dòng)化控制;
1、安裝
1 yum install expect expect-devel -y
2、編寫(xiě)Script
#!/usr/bin/expect
if {$argc < 2} {
send_user "usage: $argv0 src_file username ip dest_file password\n"
exit
}
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? -r $src_file $username@$host_ip:$dest_file
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" {send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof
3、用法實(shí)例:
[root@master ~]# ./allscp.sh install.log root 192.168.100.145 /tmp/ 123456
你也可以使用其他帳號(hào);
上面實(shí)現(xiàn)了對(duì)單臺(tái)機(jī)器復(fù)制;
4、批量服務(wù)器復(fù)制
#!/bin/bash
src_file=$1
username=$2
host_list=$3
dest_file=$4
password=$5
cat $host_list | while read line
do
host_ip=`echo $line | awk '{print $1}'`
./allscp.sh $src_file $username $host_ip $dest_file $password
done
用法實(shí)例:
希望大家有更好的介意~
推薦閱讀:
總結(jié)
以上是生活随笔為你收集整理的linux脚本批量复制文件,shell实现scp批量下发文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux脚本判断流程控制,linux
- 下一篇: linux与mac os程序员,程序员为