新建copy_file.exp文件
文件内容如下:
#!/usr/expect/bin/expect
#############################################################
# #
# 1.Copy install-package to destination host #
# #
#############################################################
#
# check parameter numbers
#
if {$argc < 8} {
puts " Error : Parameter is error."
puts " Usage : ./copy_file.exp local_file_path local_file_name remote_user remote_host remote_host_password remote_file_path remote_file_name local_to_remote:0|1"
puts "Example: ./copy_file.exp /home/uxdb test.zip uxdb 192.168.1.234 123456 /home/uxdb test.zip 0"
exit 1
}
set local_file_path [lindex $argv 0]
set local_file_name [lindex $argv 1]
set remote_user [lindex $argv 2]
set remote_host [lindex $argv 3]
set remote_host_password [lindex $argv 4]
set remote_file_path [lindex $argv 5]
set remote_file_name [lindex $argv 6]
set local_to_remote [lindex $argv 7]
set timeout 5
set copy_timeout 60 ;#复制文件超时时间:60秒
#
# check local_to_remote parameter
#
if {$local_to_remote != 0 && $local_to_remote != 1} {
puts "The last parameter is failed,please input 0 or 1"
exit 1
}
#
# start to copy
#
if {$local_to_remote == 0} {
set filename $local_file_name
spawn scp $local_file_path/$local_file_name $remote_user@$remote_host:$remote_file_path/$remote_file_name
} else {
set filename $remote_file_name
spawn scp $remote_user@$remote_host:$remote_file_path/$remote_file_name $local_file_path/$local_file_name
}
expect {
"*(yes/no)?" {
send "yes\r"
exp_continue
}
"*password:" {
send "$remote_host_password\r"
}
}
expect {
"Host key verification failed." {
puts "\rverify failed!"
exit 1
}
"Permission denied*" {
puts "\rpassword is error!"
exit 1
}
"$filename" {
}
}
set timeout $copy_timeout
expect eof {puts "\r******** copy finished! **********"}