python是否可以从一个文件中读取服务器名/IP_地址,而不是逐个给出服务器名,我确实进行了搜索,但没有找到任何关于它的信息。 我有下面的脚本,但这只采取单一的IP地址或服务器名称一次。感谢您的任何意见。。在
这是针对Linux和Python2.6版的
#!/usr/bin/env python
import sys
sys.stderr = open('/dev/null') # Silence silly warnings from paramiko
import paramiko as pm
sys.stderr = sys.__stderr__
import os
class AllowAllKeys(pm.MissingHostKeyPolicy):
def missing_host_key(self, client, hostname, key):
return
HOST = '192.1.10.1'
USER = 'karn'
PASSWORD = 'mypass'
client = pm.SSHClient()
client.load_system_host_keys()
client.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
client.set_missing_host_key_policy(AllowAllKeys())
client.connect(HOST, username=USER, password=PASSWORD)
channel = client.invoke_shell()
stdin = channel.makefile('wb')
stdout = channel.makefile('rb')
stdin.write('''
hostname
uname -a
uptime
who
exit
''')
print stdout.read()
stdout.close()
stdin.close()
client.close()
注意:我希望python读取包含服务器名称或ip地址的文件。。示例如下。。在
^{pr2}$Below code is working now..appreciate your help guys
#!/usr/bin/python
import fileinput
import sys
import paramiko as pm
import os
sys.stderr = open('/dev/null') # Silence silly warnings from paramiko
sys.stderr = sys.__stderr__
class AllowAllKeys(pm.MissingHostKeyPolicy):
def missing_host_key(self, client, hostname, key):
return
with open('/home/karn/PYTHN/host.txt', 'r') as f:
for host in f:
HOSTN = host.rstrip()
USER = 'myuser'
PASSWORD = 'mypass'
client = pm.SSHClient()
client.load_system_host_keys()
client.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
client.set_missing_host_key_policy(AllowAllKeys())
client.connect( HOSTN, username=USER, password=PASSWORD )
channel = client.invoke_shell()
stdin = channel.makefile('wb')
stdout = channel.makefile('rb')
stdin.write('''
hostname
lsb_release -a
exit
''')
print stdout.read()
stdout.close()
stdin.close()
client.close()
下面是一个示例,我可以从/etc/hosts获取主机名和IP地址:
使用
with open
可以确保python正确地处理和关闭文件。在然后读每一行。它是一个字符串,split()将返回一个数组。因为我是从/etc/hosts读取的,所以第一个元素是IP地址,第二个元素是主机名。我使用rstrip来确保没有额外的字符妨碍。在
从那里你需要调整你的文件是什么样子。在
您可以使用一个包含3列的}。这是官方的examples。在您的代码中,您将循环遍历行并提取每行中的3个字段,如示例所示。在
csv
文件,其中一列用于HOST
、USER
和{打开文件并读取每一行之后,还可以尝试使用正则表达式进行提取。在
如果您知道您的ip范围:
和你的服务器名称一样
相关问题 更多 >
编程相关推荐