打开一个文件名为 renzi.txt 的文件,文件中存储了需要登录的服务器信息,包括 IP、用户名、密码和端口号。 循环读取文件中的每一行,并将每行内容按照“,”分隔,分别获取主机名、用户名、密码和端口号。 调用 verification_ssh 函数,传入主机名、用户名、密码、端口号和需要执行的命令。 在 verification_ssh 函数中,使用 paramiko 模块创建 SSH 连接,并执行传入的命令。将命令执行结果保存到 result.txt 文件中。 循环读取 cmd.txt 文件中的每一行命令,并执行。 最后关闭所有打开的文件和 SSH 连接。 需要注意的是,代码中使用的字符集是 GBK,如果在执行过程中出现乱码,可以将字符集改为 UTF-8。
时间: 2023-06-17 10:06:32 浏览: 44
以下是实现该功能的 Python 代码:
```python
import paramiko
# 定义 SSH 连接函数
def verification_ssh(hostname, username, password, port, command):
# 创建 SSH 客户端
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接 SSH 服务器
ssh.connect(hostname, port, username, password)
# 执行命令
stdin, stdout, stderr = ssh.exec_command(command)
# 获取命令执行结果
result = stdout.read().decode('gbk')
# 关闭 SSH 连接
ssh.close()
# 返回命令执行结果
return result
# 打开需要登录的服务器信息文件
with open('renzi.txt', 'r', encoding='gbk') as f:
# 循环读取每一行
for line in f:
# 分隔每行内容
host, username, password, port = line.strip().split(',')
# 需要执行的命令
command = 'ls /'
# 调用 SSH 连接函数
result = verification_ssh(host, username, password, int(port), command)
# 将命令执行结果保存到文件
with open('result.txt', 'a', encoding='gbk') as rf:
rf.write(f'{host}: {result}\n')
# 打开需要执行的命令文件
with open('cmd.txt', 'r', encoding='gbk') as cf:
# 循环读取每一行命令
for cmd in cf:
# 执行命令
os.system(cmd)
# 关闭文件
f.close()
cf.close()
rf.close()
```
需要注意的是,paramiko 模块需要单独安装,可以使用 pip 命令进行安装:`pip install paramiko`。另外,如果在执行过程中出现乱码,可以将字符集改为 UTF-8。