您的位置:首页 > 其它

inux下用expect spawn时的问题

2014-04-01 11:29 330 查看

linux下用expect spawn时的问题

2011-04-27 13:14醉听灯|分类:Linux| 浏览7081次
想写个脚本去自动上传测试的LOG,使用spawn scp /log/*.log root@192.168.0.1:/home
执行的时候没有动作,把*改成指定的文件名时则没有问题,想知道怎么自动复制多个文件过去二不需要指定文件名.
单独使用scp /log/*.log root@192.168.0.1:/home时是可以的,只是要输入密码,想自动上传.脚本如下
#!/usr/bin/expect
spawn scp /log/*.log root@192.168.0.1:/home
expect "root@192.168.0.1's password:"
exec sleep 5
send "111111\n"
interact

test11.sh
#!/bin/bash
LocalMysqlPath='/home/data'
#设定本地增量备份的sql文件路径
LocalTempFilePath='/home/increment'
#定义当前时间
StopDate=`date +%Y-%m-%d`
#定义前一天时间
StartDate=`date --date="yesterday" +%Y-%m-%d`
#设定开始时间
StartTime='3:00:01'
#结束时间
StopTime='0:00:00'
#数据库名
DataBase='bbts'
#找到binlong文件,是从现在起两天前修改过的文件,当然也包含昨天生成的binlong文件
BinlogFiles=`find $LocalMysqlPath -name 'mysql-bin.0*' -mtime -2`
#首先要执行flushlog吧所有还在内村中的sql语句都flush到前一个binlog文件,并且生成新的binlog文件
#expect $LocalTempFilePath/flushlog.exp
#mysqladmin -uroot -p flush-logs
expect /usr/local/sbin/mysql.sh
#生成前一天的增量备份sql 文件格式但只是针对 指定的数据库名称 输出文件格式为:2008-08-08.sql
mysqlbinlog --no-defaults --start-datetime="$StartDate $StartTime" --database="$DataBase" $BinlogFiles > $LocalTempFilePath/$StartDate.sql
#scp /kbmc/increment/$StartDate.sql yunwei@192.168.1.22:/home/yunwei/increment
expect /usr/local/sbin/scp.exp

test.sh

set timeout -1
set DATE [exec date "+%Y%m%d"]
#set DATE [exec date "-d last-day" "+%Y%m%d_*"]
spawn scp -p 1022 /home/yunwei/$DATE.bbtsftp.tar.gz yunwei@192.168.1.10:/kbmc/bbtsftp/
expect "password:"
send "123456``\r"
expect "]*"

mysql.sh
set timeout -1
#set DATE [exec date "+%Y%m%d"]
#set DATE [exec date "-d last-day" "+%Y-%m-%d"]
spawn mysqladmin -uroot -p flush-logs
expect "password:"
send "123456\r"
expect "]*"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  inux下用expect spawn