登录到盒子并将IP打印到Python中的文件



我正在登录一个框并 grep' 文件内容并打印到文件。 我可以打印 grep 文本,但无法将主机名打印到文件中。

import paramiko
k = paramiko.RSAKey.from_private_key_file("/Users/Documents/privatekey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print ("connecting")
c.connect( hostname = "10.224.58.214", username = "ec2-user", pkey = k )
print ("connected")
commands = [ "grep jdbc /usr/share/activemq/conf/activemq.xml" ]
for command in commands:
    #print ("Executing {0}".format( command ))
    stdin , stdout, stderr = c.exec_command(command)
    print (hostname,file=open("output.csv", "a"))
    print (stdout.read(),file=open("output.csv", "a"))
    #print("Errors")
    #print (stderr.read())
c.close()

print (hostname,file=open("output.csv", "a"))行出错,指出主机名未定义。

hostname不是

定义的变量,它是c.connect()方法的命名参数。在脚本开头定义缺少的变量。下面我用了h

import paramiko
k = paramiko.RSAKey.from_private_key_file("/Users/Documents/privatekey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print ("connecting")
h = "10.224.58.214"
c.connect( hostname = h, username = "ec2-user", pkey = k )
print ("connected")
commands = [ "grep jdbc /usr/share/activemq/conf/activemq.xml" ]
for command in commands:
    stdin , stdout, stderr = c.exec_command(command)
    print (h, file=open("output.csv", "a"))
    print (stdout.read(), file=open("output.csv", "a"))
c.close()

最新更新