Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Paramiko中的Windows SSH服务器上执行命令(pg_dump)之前设置环境变量(PGPASSWORD)_Python_Windows_Postgresql_Ssh_Paramiko - Fatal编程技术网

Python 在Paramiko中的Windows SSH服务器上执行命令(pg_dump)之前设置环境变量(PGPASSWORD)

Python 在Paramiko中的Windows SSH服务器上执行命令(pg_dump)之前设置环境变量(PGPASSWORD),python,windows,postgresql,ssh,paramiko,Python,Windows,Postgresql,Ssh,Paramiko,我想通过SSH连接到Windows服务器为我的postgres数据库创建备份。我使用paramikopython库来实现这一点,但不幸的是,sql文件不包含任何数据(文件大小为0,文件无法删除,因为它们仍然在cmd中打开)。 因此,我怀疑我的命令还没有执行完。。。 这是我的职责: def ssh_server(server, username, password, pg_pass, ps_user, database): client = paramiko.SSHClient()

我想通过SSH连接到Windows服务器为我的postgres数据库创建备份。我使用paramikopython库来实现这一点,但不幸的是,sql文件不包含任何数据(文件大小为0,文件无法删除,因为它们仍然在cmd中打开)。 因此,我怀疑我的命令还没有执行完。。。 这是我的职责:

def ssh_server(server, username, password, pg_pass, ps_user, database):

    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    client.connect(hostname=server, username=username, password=password)

    stdin_2, stdout_2, stderr_2 = client.exec_command("SET PGPASSWORD=secret_pw")

    stdin, stdout, stderr = client.exec_command(
        "pg_dump -U {} {} > kp_{}.sql\n".format(
            ps_user, database, ts_str), get_pty=True)

    client.close()
顺便说一句:在PuTTY中执行命令会产生所需的输出。
有人知道如何解决这个问题吗?谢谢你的帮助

基本上就是这个问题:

唯一的区别是,您在Windows上,
set
甚至包括变量值的训练空间。因此,请确保密码和
&&
之间没有空格:

SET PGPASSWORD=secret_pw&&pw_dump