#!/usr/bin/expect -f
#
##############################################################################
#
# Filename: /usr/local/sbin/auto_tita_st_sh
#
# Purpose: Expect script designed to telnet into Nortel Ethernet Switches
# and execute the CLI commands to confgure the appropriate timezone
# information, including Day Light Saving time.
#
#
# Author: BeiSen
#
# Date: June 1 2011
#
# Version: 1.1
#
# 源压缩包: /root/stnew/tita201107011505.tar (后缀名取决去压缩方式,时间取到分钟,避免一天多个版本发布而引起文件重名)
#
# 目标服务器: 10.22.1.48
# 10.22.1.49
#
# 目录服务器文件路径:/var/www/htdocs/tita
set DATE [exec date "+%Y%m%d%H%M%S"]
set PATH [lindex $argv 0]
set FILE [lindex $argv 1]
set PATH2 [lindex $argv 2]
# 开始循环
foreach IP {
10.22.1.48
10.22.1.49
10.22.1.7
10.22.1.8
} {
spawn ssh root@$IP
set timeout 60
log_file -a /var/log/expect/expect$DATE.log
expect "*(yes/no)*"
send "yes\r"
expect "*password:*"
send "Uu2#w@th?9L_\r"
expect "#"
#####################################################################################################################################3
#
#uploading (注意文件名和路径)
#
send "cd $PATH2\r"
expect "#"
send "mv $FILE $FILE.$DATE\r"
expect "#"
send "scp 10.22.1.54:$PATH\/$FILE $PATH2\r"
expect "*(yes/no)*"
send "yes\r"
expect "*password:*"
send "Uu2#w@th?9L_\r"
expect "#"
#
# Backuping (备份方法可以自己定义)
##################################################################################################
#send "mv $FILE $FILE.$DATE\r"
#
#
#send "rm -rf tita\r"
#expect "#"
#send "tar -xzvf tita.tar.gz .\\"
send "chown -R www:www $FILE\r"
#---------------------------------------------------------------------------------------------------------------------------------------------------
expect "#"
# purge cache (清空服务器的缓存)
send "echo>/root/.ssh/known_hosts\r"
expect "#"
send "exit\r"
expect eof
}
############################################################################---------完-----------########################################################
用法:假如要上传file.jpg到四台机器的/var/www/htdocs/11目录下,上传到一台管理机器上/var/stnew目录下,,然后执行 ./auto_Single_st.sh /var/stnew file /var/www/htdocs/11
执行前清空一下/root/.ssh/known_hosts内容
转载于:https://blog.51cto.com/lubing/910734