python子流程.popen重定向以创建fi

2024-04-26 13:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在寻找如何做到这一点没有任何成功。我继承了一个python脚本,用于对数据库执行每小时一次的备份。原来的脚本太慢了,所以我正在尝试一个更快的实用程序。如果输入到shell中,我的新命令将如下所示:

pg_basebackup -h 127.0.0.1 -F t -X f -c fast -z -D - --username=postgres > db.backup.tgz

问题是,原始脚本使用call(cmd),如果上面的是cmd字符串,它就会失败。我一直在寻找如何修改它以使用popen,但是找不到任何使用文件创建重定向的示例,如中所示 >。如图所示的pg\u basebackup将输出到stdout。到目前为止,我唯一成功的方法是将-D -更改为-D some.file.tgz,然后将文件移动到存档,但我宁愿一步到位。你知道吗

有什么想法吗?你知道吗

杰伊


Tags: 命令实用程序脚本cmd数据库dbusernamepostgres
2条回答

嗯。。。pg\u basebackup可执行文件必须能够附加到该文件。如果我按照您建议的方式打开文件,我不知道python中的正确语法是否能够做到这一点。如果我尝试在用cmd()调用的字符串中放入“>;”或“>;”,python就会吐出来。这是我真正的问题,我找不到任何指导。你知道吗

可能是这样?你知道吗

with open("db.backup.tgz","a") as stdout:
        p = subprocess.Popen(cmd_without_redirector, stdout=stdout, stderr=stdout, shell=True)
        p.wait()

相关问题 更多 >