我正在登录一个框并 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()