大半夜的进行异机数据迁移,由于数据量比较大,导出需要几个小时。
为了节约时间,想导出后就把备份文件scp到目标机器上,又不想等,于是搞了个定时scp的脚本:
[root@BJ-FT-1F-121-30 hysjb_20_249_250]# cat scp.exp
set timeout -1
spawn scp 112.33.18.211:/apps/back/* .
match_max 100000
expect "password:"
send "mypassword\r"
expect eof
将mypassword修改为目标机器的密码即可。执行的命令:scp 192.168.66.65:/apps/back/* .
将脚本加到crontab里,计算一下导出需要的时间,设置定时任务。
参数:
timeout:默认的超时时钟设的是10秒,但可以自己设定.通过”set timeout 30”,可以将超时时钟设定为30秒.如果设定为-1的话,那么超时时钟将是无穷大。
match_max:在读取输出进行匹配时,超过2000字符将会强制将前面的字符丢弃。这个数目可以通过match_max来改变。(但太大的数目会降低匹配的效率)。