Why it doesn't work?

作業のメモ、記録をブログに残しています。

Python scpでファイル転送

Paramikoを導入してpythonでのssh接続が可能になったので、今度はscpによるファイル転送を実装してみます。
PythonでSSH接続(Paramiko) - Why it doesn't work?

1. scpモジュールのインストール

いつものようにpipコマンドで。

pip install scp

2. scpによるファイルダウンロード

paramikoによるssh接続は前回の記事と同じです。

import paramiko
import scp

hostname = 'example.com'
user_name = 'root'
private_key = 'private_key.txt'

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=ip_addr, port=22, username=user_name, key_filename=private_key)
# create scp client object
scp_client =  scp.SCPClient(client.get_transport())
# Get request to scp
scp_client.get('/home/root/xxx.txt')

scp_client.close()
client.close()

これで、"xxx.txt"がダウンロードされます。

3. scpによるファイルアップロード

ssh接続、切断処理は同じなので省略します。

# create scp client object
scp_client =  scp.SCPClient(client.get_transport())
# Upload one fille to the remote directry
scp_client.put('xxx2.txt', recursive=True, remote_path='/home/root/')

これで、"xxx2.txt"がアップロードされます。