def get(request): # 实例化SSHClient连接工具 ssh_client = paramiko.SSHClient() # 保存服务器密钥 ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接linux服务器 try: ssh_client.connect(hostname='192.168.233.128', port=22, username='root', password='12356789', timeout=2) except (EOFError, Exception) as e: request_data = {"code": 500, "message": "服务器连接失败", "data": []} return JsonResponse(request_data) # 返回了三个数据,第一个是输入命令,第2个是命今返回的结果,第3个是命令错误时返回的结果 # ps aux是linux服务器查询正在运行的所有应用程序的命令 stdin, stdout, stderr = ssh_client.exec_command('ps aux') # 读取返回结果,将编码转为utf8,避免乱码 df = stdout.read().decode('utf-8') # 创建一个临时文件存放命令返回的结果 # 因为linux服务器命令返回的数据是一个字符串,不能直接按空格截取,最好的方式就是写入文件读取一行再截取、拼接命令 # IO流, 数据存储到本地磁盘 filename = "tempdata.txt" # 打开文件,会在项目根目录打开,如果没有就会创建 w+为写入读取权限 fileObj = open(filename, mode='w+') # 将命令返回的结果写入文件 fileObj.write(df) # flush:保证数据成功写入文件。 fileObj.flush() fileObj.close()
时间: 2023-06-27 16:01:30 浏览: 233
python下paramiko模块实现ssh连接登录Linux服务器
这段代码是一个使用Paramiko库连接Linux服务器并执行命令的示例。首先实例化SSHClient连接工具,然后设置保存服务器密钥的策略,接着使用connect方法连接Linux服务器。如果连接失败,则返回一个JsonResponse对象,包含错误代码、错误信息和空数据列表。如果连接成功,则使用exec_command方法执行命令,并通过stdout读取返回结果。最后,将命令返回的结果写入一个临时文件中。需要注意的是,因为Linux服务器命令返回的数据是一个字符串,不能直接按空格截取,所以最好的方式是写入文件,再读取一行再截取、拼接命令。
阅读全文