zoukankan      html  css  js  c++  java
  • linux 无密码登录

    环境:Linux

    脚本:Python

    功能:批量IP,远程执行命令、拷贝文件

    运行:./ssh_scp.py iplist.txt

    脚本内容:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import paramiko
    import string
    import sys

    host_file = sys.argv[1]
    username = 'root'
    password = 'root@1234'
    port = 22

    paramiko.util.log_to_file('syslogin.log')

    # 命令列表
    cmd_list1 = ['mkdir -pv /usr/local/zabbix/scripts/tmp']
    cmd_list2 = ['usermod -a -G mysql zabbix','chmod 755 /usr/local/zabbix/scripts']

    #本地/远程机器 绝对路径文件名
    localpath1 = "/data/file1"
    remotpath1 = "/data/file1"

    # 定义ssh函数

    def SSH_CMD(hostname,cmds):
      try:
        for cmd in cmds:
          ssh = paramiko.SSHClient()
          ssh.load_system_host_keys()
          ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
          ssh.connect(hostname=hostname, username=username, password=password)
        for cmd in cmds:
          stdin,stdout,stderr = ssh.exec_command("%s" % cmd)
          print stdout.read()
        ssh.close()
      except Exception, e:
        print str(e)

    #定义scp函数

    def SCP_FILE(hostname):
      try:
        t = paramiko.Transport((hostname, port))
        t.connect(username=username, password=password)
        sftp = paramiko.SFTPClient.from_transport(t)
        sftp.put(localpath1, remotpath1)
        print "%s" % localpath1

      except Exception, e:
        print str(e)

    if __name__ == '__main__':
      with open(host_file) as f:
        for ip in f.readlines():
        ip = ip.strip(' ')
        hostname = "%s" % ip
        print "IP : %s" % ip
        SSH_CMD(hostname,cmd_list1)
        print "xxxxxx ssh ok "
        SCP_FILE(hostname)
        print "scp xxxx ok"

    --OK

  • 相关阅读:
    ArrayList源码解析
    Oracle WITH A AS 用法解析
    oracle关于时间分区的查询
    request.getRealPath("/")
    Oracle部分sql优化
    Java虚拟机
    java谜题-表达式谜题
    java和oracle简单的日期格式化
    java编译后在tomcat下无class文件
    JSP 中文乱码及其解决方案
  • 原文地址:https://www.cnblogs.com/cuisi/p/6561208.html
Copyright © 2011-2022 走看看