我在本地计算机上有一个文本文件,该文件由cron中运行的每日Python脚本生成。
我想添加一些代码,以使该文件通过SSH安全地发送到我的服务器。
您可以使用以下scp
命令调用bash命令(它通过SSH复制文件)subprocess.run
:
import subprocess
subprocess.run(["scp", FILE, "USER@SERVER:PATH"])
#e.g. subprocess.run(["scp", "foo.bar", "joe@srvr.net:/path/to/foo.bar"])
如果您要创建要在同一Python程序中发送的文件,则需要在用于打开文件subprocess.run
的代码with
块之外调用命令(.close()
如果不使用with
块),因此您知道它已从Python刷新到磁盘。
您需要预先生成(在源计算机上)并安装(在目标计算机上)ssh密钥,以便scp自动通过您的公共ssh密钥进行身份验证(换句话说,因此您的脚本不需要输入密码)
。