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

How do I take screenshot on Unix using python script on windows PC?

我正在尝试从我的 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()