用 Python 控制 rsync?

新手上路,请多包涵

我一直想编写一个 python 脚本,该脚本将依次运行多个 rsync 实例,以便将数据备份到另一台计算机。

目前我只有这个包含我使用的命令的文本文件,我只是将它们复制粘贴到终端中,这看起来有点傻。

我希望能够使用 python 为我做这件事。我非常模糊地知道如何使用 subprocess.popen,但我不知道如何让 python 直接与 rsync 交互,比如为我输入密码。蟒蛇能做到吗?

就像是:

 if theProccess.proccessResponse == "Password:" :
    theProccess.respond(string)

或者我能做的最好的就是拥有它,甚至是 bash 脚本,只需按顺序运行 rsyncs 并且必须一遍又一遍地输入我的密码?

提前致谢。

原文由 Cheesemold 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 699
1 个回答

如果您想与一般的子流程进行交互,您可以使用其他地方提到的 pexpect 。但是对于您的特定情况,假设您的 rsync 通过 ssh(默认设置)运行,那么您可能需要考虑在两台主机之间设置无 密码的 ssh 连接,这样就无需输入密码。这是一种 基于密钥的解决方案,比将密码存储在源代码中要安全得多。

这是一位讨论您的确切问题并决定使用无密码 ssh 的博主

原文由 Ryan Bright 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题