浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python Expect模块 - Learning Correcting Improving - ITeye技术网站

Python中有一个pExpect
模块,和TCL中的expect命令差不多,通过expect可以使你的脚本和shell命令之间进行交互。

下面python脚本,使用了expect与ssh和scp交互来完成任务。

 

Python代码  收藏代码
  1. #!/usr/bin/python  
  2.   
  3. import pexpect  
  4. import sys  
  5. import time  
  6. import os  
  7.   
  8. now = time.strftime("%m%d%y_%I%M%S%p", time.localtime())  
  9.   
  10. if sys.argv[1] == '-c':  
  11.     foo = pexpect.spawn('scp -r %s user@address.org:/home/user/' % sys.argv[2])  
  12.     foo.expect('.ssword:*')  
  13.     foo.sendline('password')  
  14.     foo.interact()  
  15.   
  16. elif sys.argv[1] == '-b':  
  17.     os.mkdir("/home/user/BKUP/foo.com%s" % now, 0700)  
  18.     foo = pexpect.spawn('scp -r user@foo.org:/RemoteBox/user/%s /LocalBox/user/Bup/foo%s/' % (sys.argv[2], TimeStamp))  
  19.     foo.expect('.*ssword:')  
  20.     foo.sendline('Passwd_to_server')  
  21.     foo.interact()  
  22. elif sys.argv[1] == '-p':  
  23.     foo = pexpect.spawn('ssh foo@bar.com')  
  24.     foo.expect('.*')  
  25.     foo.sendline('password')  
  26.     foo.interact()  
  27. else:  
  28.     foo = pexpect.spawn('ssh default@default.org')  
  29.     foo.expect('.*ssword:')  
  30.     foo.sendline('password')  
  31.     foo.interact()  

分享到:

评论

posted on 2012-02-16 23:24  lexus  阅读(6970)  评论(0编辑  收藏  举报