1. ホーム
  2. python

[解決済み] PythonでSCPやSSHを使ってリモートサーバーにファイルをコピーするには?

2022-08-08 03:19:05

質問

私のローカルマシンに、cronで毎日実行されるPythonスクリプトによって生成されるテキストファイルがあります。

私は、そのファイルを SSH 経由で私のサーバーに安全に送信させるために、ちょっとしたコードを追加したいと思います。

どのように解決するのですか?

を呼び出すことができます。 scp bashコマンド(これはファイルを SSH ) を使って subprocess.run :

import subprocess
subprocess.run(["scp", FILE, "USER@SERVER:PATH"])
#e.g. subprocess.run(["scp", "foo.bar", "[email protected]:/path/to/foo.bar"])

同じPythonプログラム内で送信するファイルを作成している場合は、送信するファイルに対して subprocess.run コマンドの外側で with ブロックの外側でコマンドを実行します (あるいは .close() を呼び出す)。 with ブロック)を使っていない場合は、Pythonからディスクにフラッシュされたことがわかるようにするためです。

scp が自動的にあなたの公開 ssh 鍵で認証されるように (言い換えれば、あなたのスクリプトがパスワードを要求しないように) 事前に (送信元マシンで) ssh 鍵を生成し、 (送信先マシンに) インストールしておく必要があります。