免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2742 | 回复: 3
打印 上一主题 下一主题

shell脚本调用expect脚本的错误提示导出问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-11 14:51 |只看该作者 |倒序浏览
文件:expect_scp
1: #!/usr/bin/expect

2:

3: set timeout 10

4: set host [lindex $argv 0]

5: set username [lindex $argv 1]

6: set password [lindex $argv 2]

7: set src_file [lindex $argv 3]

8: set dest_file [lindex $argv 4]

9:

10: spawn scp $src_file $username@$hostdest_file

11: expect {

12:     "(yes/no)?"

13:         {

14:             send "yes\n"

15:             expect "*assword:" { send "$password\n"}

16:         }

17:     "*assword:"

18:         {

19:             send "$password\n"

20:         }

21:     }

22: expect "100%"

23: expect eof

文件:batch_scp.sh
1: #!/bin/sh

2:

3: list_file=$1

4: src_file=$2

5: dest_file=$3

6:

7: cat $list_file | while read line

8: do

9:     host_ip=`echo $line | awk '{print $1}'`

10:     username=`echo $line | awk '{print $2}'`

11:     password=`echo $line | awk '{print $3}'`

12:     echo "$host_ip"

13:     ./expect_scp $host_ip $username $password $src_file $dest_file

15: done

文本:list_file
192.168.75.130 root 123456

192.168.75.131 knktc testpass

shell脚本来调用这个expect脚本,实现批量scp的任务
问题:当出现错误的时候(如远程的文件不存在),如何能把这些错误提示自动写入一个文件?这样就能更清楚批量获取文件时有没有出现错误咯。谢谢解答!

论坛徽章:
0
2 [报告]
发表于 2012-04-12 10:09 |只看该作者
spawn scp $src_file $username@$hostdest_file 2>333.txt

这样会提示错误的。。怎么没人解答。。

论坛徽章:
0
3 [报告]
发表于 2012-04-12 14:23 |只看该作者
> 333.txt 2>&1  这样会把正确的信息都写入log里面。。帖子沉了,朋友帮忙解决下吧,谢谢。。

论坛徽章:
0
4 [报告]
发表于 2012-04-13 09:16 |只看该作者
可以先用ssh判断远程文件是否存在,再做scp操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP