Guest User

Untitled

a guest
Dec 17th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import paramiko
  4. import sys
  5. import threading
  6.  
  7. #Copy local file to remote server.
  8. def sshclient_scp(hostname, port, username, password, local_path, remote_path):
  9. t = paramiko.Transport((hostname, port))
  10. t.connect(username=username, password=password) # 登录远程服务器
  11. sftp = paramiko.SFTPClient.from_transport(t) # sftp传输协议
  12. sftp.put(local_path, remote_path)
  13. t.close()
  14.  
  15. def sshclient_scp_get(hostname, port, username, password, remote_path, local_path):
  16. t = paramiko.Transport((hostname, port))
  17. t.connect(username=username, password=password) # 登录远程服务器
  18. sftp = paramiko.SFTPClient.from_transport(t) # sftp传输协议
  19. sftp.get(remote_path, local_path)
  20. t.close()
  21.  
  22. def sshclient_execmd(hostname, port, username, password, execmd):
  23. paramiko.util.log_to_file("paramiko.log")
  24. s = paramiko.SSHClient()
  25. s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  26. s.connect(hostname=hostname, port=port, username=username, password=password)
  27. stdin, stdout, stderr = s.exec_command(execmd)
  28. stdin.write("Y") # Generally speaking, the first connection, need a simple interaction.
  29. line=stdout.read()
  30. s.close()
  31. print (hostname+":")
  32. print line
  33.  
  34.  
  35. try:
  36. file_name = sys.argv[1]
  37. cmd= sys.argv[2]
  38. except IndexError:
  39. print 'Wrong params!'
  40. print 'Usage :'
  41. print ' batch.py "$OS_LIST_FILE" "$BATCH_EXECUTE_CMD"'
  42. print 'cat oslist.txt:'
  43. print '192.168.0.1,22,oracle,passwd1'
  44. print '192.168.0.2,22,oracle,passwd1'
  45. print '192.168.0.3,24,oracle,passwd1'
  46. print 'Format is :'
  47. print 'IPADDR,SSHPORT,USERNAME,PASSWORD'
  48. print 'Examples of usage:'
  49. print './batch.py "/root/workspace/oslist.txt" "df -h"'
  50.  
  51. sys.exit()
  52.  
  53. #file_name = sys.argv[1]
  54. #cmd= sys.argv[2]
  55.  
  56. #maintenance_osinfo
  57. with open(file_name) as file_object:
  58. for line in file_object:
  59. splits_str = line.rstrip().split(',')
  60. a=threading.Thread(target=sshclient_execmd,args=(splits_str[0],int(splits_str[1]),splits_str[2],splits_str[3],cmd))
  61. a.start()
  62. #print sshclient_execmd(splits_str[0],int(splits_str[1]),splits_str[2],splits_str[3],cmd)
  63. # print sshclient_scp(splits_str[0], int(splits_str[1]), splits_str[2], splits_str[3], file_name, splits_str[4]+file_name)
Add Comment
Please, Sign In to add comment