python密钥登录主机

#!/usr/bin/python
# -*- coding:utf-8 -*- 
###################################
#
# 检查主机的损坏磁盘
#
###################################

import paramiko
import sys

def DiskCheck(ip):
    try:
        # 建立一个sshclient对象
        ssh = paramiko.SSHClient()
        # 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 指定本地的RSA私钥文件,如果建立密钥对时设置的有密码,password为设定的密码,如无不用指定password参数
        # pkey = paramiko.RSAKey.from_private_key_file('/home/super/.ssh/id_rsa', password='12345')
        pkey = paramiko.RSAKey.from_private_key_file('/home/ptop/topicjie/scripts/keys/id_rsa')
        # 建立连接
        ssh.connect(hostname=ip,
                    port=22,
                    username='ptop',
                    pkey=pkey)
        # 执行命令
        stdin, stdout, stderr = ssh.exec_command("for i in $(df -h|grep data|awk '{print $6}'); do  touch $i/test.txt; done; df -h|grep data")
        # 结果放到stdout中,如果有错误将放到stderr中
        print(stdout.read().decode())
        print(stderr.read())
        # 关闭连接
        ssh.close()
    except Exception,e:
        print e

if __name__ =='__main__':
    if len(sys.argv) != 2:
        print 'Usage: python CheckDisk.py ip'
        sys.exit()
    print 'Host: %s' % sys.argv[1]
    print ''
    DiskCheck(sys.argv[1])
    print '-' * 80

  

posted @ 2017-08-27 16:24  Topic  阅读(2071)  评论(0编辑  收藏  举报
转载请注明出处. 作者: 运维的自我修养 地址: http://www.cnblogs.com/topicjie/