Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10588
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 41
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-21 19:15
文章分类

全部博文(3)

文章存档

2016年(1)

2014年(2)

我的朋友

分类: 系统运维

2014-03-21 19:56:05


  1. #[root@localhost ~]# cat login.exp
  2. #! /usr/bin/expect
  3. ##by Lightman
  4. set ipaddress [lindex $argv 0] //设置ipaddress变量,采用参数0
  5. set password [lindex $argv 1] //设置ipaddress变量,采用参数0
  6. spawn ssh ii@$ipaddress //spwan 激活ssh程序进行交互式运行
  7. expect {
  8. "yes/no" {send "yes\r"} //捕捉yes/no的字符串,并发送send命令
  9. "*assword:" {send "$password\r"} //捕捉*assword的字符串,并发送send命令
  10. }
  11. expect "]*" //捕捉shell提示符($、#)
  12. send "date\r"
  13. send "sleep 5\r"
  14. #send "su - ii\r"
  15. send "su - root\r"
  16. expect "*assword:"
  17. send "echo\“hello \” >> /root/temp.txt\r" //send 传送命令时,如遇到有双引号之类的 ,要用 "\" 进行转义
  18. send "sleep 5\r"
  19. send "exit\r"
  20. send "sleep 5\r"
  21. send "exit\r"
  22. interact //terminal保持停留在当前服务器

都是从网上找的,总结一下
一.
使用shell脚本中的except方法,脚本如下

--------转载自Kayson的博客

二.
python的pexpect模块(感觉不如用shell)
三.
python的paramiko模块(这个好用),代码如下

  1. #-*- coding: utf-8 -*-

  2. #!/usr/bin/python

  3. import paramiko

  4. import threading



  5. def ssh2(ip,username,passwd,cmd):

  6.     try:

  7.         ssh = paramiko.SSHClient()

  8.         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

  9.         ssh.connect(ip,22,username,passwd,timeout=5)

  10.         for m in cmd:

  11.             stdin, stdout, stderr = ssh.exec_command(m)

  12. # stdin.write("Y") #简单交互,输入 ‘Y’

  13.             out = stdout.readlines()

  14.             #屏幕输出

  15.             for o in out:

  16.                 print o,

  17.         print '%s\tOK\n'%(ip)

  18.         ssh.close()

  19.     except :

  20.         print '%s\tError\n'%(ip)





  21. if __name__=='__main__':

  22.     cmd = ['cal','echo hello!']#你要执行的命令列表

  23.     username = "" #用户名

  24.     passwd = "" #密码

  25.     threads = [] #多线程

  26.     print "Begin......"

  27.     for i in range(1,254):

  28.         ip = '192.168.1.'+str(i)

  29.         a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
  30.         a.start()




阅读(1154) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:解决ubuntu14.04root没有外放声音的问题

给主人留下些什么吧!~~

7大爷2014-03-24 10:03:30