Chinaunix首页 | 论坛 | 博客
  • 博客访问: 937085
  • 博文数量: 119
  • 博客积分: 6248
  • 博客等级: 准将
  • 技术积分: 1419
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-08 14:14
文章分类

全部博文(119)

文章存档

2014年(1)

2012年(1)

2011年(2)

2010年(22)

2009年(81)

2008年(12)

分类: LINUX

2009-09-28 15:02:14

前不久因为进行异地copy数据,就想到了scp,但是这个东西需要手动去输入密码,不能放到后台去执行,于是就考虑有没有办法让他自动输入密码呢,最终发现了expect这个东西,很强大的东西,所以我就在本地测试了下,最终实现了不用手动输入密码也可以进行COPY数据,拿来与大家分享.
 
 要使用expect需要预先安装tcl这个东西,然后再安装expect包.我这里使用的是tcl8.4.11-src.tar.gz和expect-5.43.0.tar.gz的安装包.
 
1.安装tcl和expect
  
   #tar zxvf tcl8.4.11-src.tar.gz
   #cd tcl8.4.11/unix
   #./configure && make && make install
   #cp tclUnixPort.h  ../generic/
  
   #tar zxvf expect-5.43.0.tar.gz
   #cd expect-5.43/
   #./configure --with-tcl=/usr/local/lib/ --with-tclinclude=\
     /home/nagios/tcl8.4.11/generic/  --with-x=no
   #make && make install
  
  OK,tcl以及expect已经安装完成了.下面给出scp的一个expect很简单的一个脚本
 

#!/usr/local/bin/expect

spawn scp /home/nagios/tuning-primer.sh nagios@192.168.100.104:/home/nagios/
expect "Password:"
exec  sleep 2
send "nagios&*(\n"
interact


就这么一个简单的脚本,就可以实现了自动输入密码的功能,大家对expect的了解还是需要在网上自己找些资料的,他也支持函数、条件语句、循环语句的,功能蛮强大的.
阅读(1352) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~