如何在windows PC上使用python脚本在Unix上截图?

如何在windows PC上使用python脚本在Unix上截图?,python,unix,screenshot,Python,Unix,Screenshot,我试图从我的Windows PC上截取UNIX服务器的屏幕截图。我的命令似乎不起作用。当我在终端上尝试相同的命令时,它会保存该文件,但它不是我下面的代码 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(sftp_server, username=sftp_login, password=sftp_password) s

我试图从我的Windows PC上截取UNIX服务器的屏幕截图。我的命令似乎不起作用。当我在终端上尝试相同的命令时,它会保存该文件,但它不是我下面的代码

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sftp_server, username=sftp_login, password=sftp_password)
stdin, stdout, stderr = ssh.exec_command("xwd -root | convert xwd:- screenshot22.jpg")

sftp = ssh.open_sftp()
transport = paramiko.Transport((sftp_server, sftp_port))
transport.connect(username = sftp_login, password = sftp_password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get("screenshot22.jpg", 'screenshot22.jpg', None)

sftp.close()
ssh.close()
注: 1.xwd安装在我的UNIX服务器上。
2.尝试了导入命令,但这需要(UNIX的第二个桌面,不是我要尝试的那个)

在@Christopher Apple的帮助下,我找到了一种方法

工作源代码是

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sftp_server, username=sftp_login, password=sftp_password)
stdin, stdout, stderr = ssh.exec_command("xwd -out screenshot.xwd -root -display :0.0")
stdin, stdout, stderr = ssh.exec_command("convert screenshot.xwd screenshot22.jpg")

sftp = ssh.open_sftp()
transport = paramiko.Transport((sftp_server, sftp_port))
transport.connect(username = sftp_login, password = sftp_password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get("screenshot22.jpg", 'screenshot22.jpg', None)
sftp.close()
ssh.close()

代码的哪一部分不起作用?可能值得检查您的
ssh.exec\u命令行中的stderr和stdout是什么。这是错误消息,
b“xwd:无法打开显示“”\n转换:无法读取图像标题
-'@xwd.c/ReadXWDImage/227。\n转换:缺少图像文件名
screenshot22.jpg'@convert.c/ConvertImageCommand/2800。\n
SSH会话没有屏幕记录可能是一个问题。SSH进程与显示无关,因此它不知道屏幕截图应该是什么,请尝试下面解释的答案: