Pythonからscp転送を行ってみます。
scp転送とはssh通信を使ったファイル転送です。
インストール
Pythonからscp転送を行うためには paramiko と scp というライブラリをインストールする必要があります。
1 2 pip install paramiko pip install scp
コード
scp転送を行う最小コードは次のようになります。
11行目では環境に応じて、IPアドレス・ポート番号・ユーザ名・パスワードを設定してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import scp import paramiko with paramiko.SSHClient() as ssh: # 初回ログイン時に「Are you sure you want to continue connecting (yes/no)?」と # きかれても問題なく接続できるように。 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # ssh接続する print('[ssh接続]') ssh.connect('[IPアドレス]', port=[ポート番号], username='[ユーザ名]', password='[パスワード]') print('[SCP転送開始]') # scp clientオブジェクト生成 with scp.SCPClient(ssh.get_transport()) as scp: # # SCP送信(ローカル → サーバ) # # ・同じファイルがあったら上書きされる。 # ・ディレクトリは指定できない。 scp.put('test.csv', '/var/samba/.') # # SCP受信(サーバ → ローカル) # # ・同じファイルがあったら上書きされる。 # ・ディレクトリは指定できない。 scp.get('/var/samba/mpv-shot0004.jpg', '.')
SCP送信する場合でも、SCP受信する場合でも、送信先に同じ名称のファイルがあると上書きされるので注意して下さい。
また、ディレクトリを指定することはできないので複数ファイルを送信する場合は、tarコマンドやzipコマンドを使って1ファイルにまとめてからscp転送する必要があります。