今日はWindows環境では、小さな需要を受けただけで、その後、私はあなたが書き込みのpythonしようとするために使用できることを、一瞬考えて、指定したディレクトリにlinux位置に圧縮ファイルをアップロードし、それらを抽出したいです。
環境:
1.linuxオペレーティングシステムA
2.windows環境のインストールPython3.x
3.Pycharm IDE環境
我々はparamikoモジュールに慣れていない場合、あなたはヘクタール知ってもらうことができます。
ファイルのアップロードは、SSH、SFTPトランスポート・プロトコル・セッションによると、SFTPクライアントオブジェクトなどのアップロード、ダウンロード、権限、地位などのリモートファイル操作を、SFTPCLient、SFTPCLientを使用しました。
コードは以下の通りです
1 #!は/ usr / binに/ PythonのENV 2 インポートparamiko 。3 インポートSYS 。4 。5 sys.argvののSRC_FILEに= [1 ]ソースファイル#windowsで 6 dsc_path = sys.argvの[2 #linuxオン]ディレクトリパス 。7 key_path = 'プライベートパス' 。8パスワード= 'パスワード' 。9 SSH = paramiko.SSHClient()SSHは、#オブジェクトを作成します 10 PRIVATE_KEY = paramiko.RSAKey.from_private_key_file(key_path)#秘密鍵を指定します 。11 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#をホストファイルの接続を許可されていないknow_hosts 12は、交通paramiko.Transport =((' IP '、ポート番号)) 13である transport.connect(ユーザ名= ' ルート'、= PKEY #サーバに接続PRIVATE_KEY) 14 15 DEF アップロード(): 16 SFTP = paramiko.SFTPClient.from_transport(トランスポート) 17。 トライ: 18である SFTP。 PUT(、dsc_path +のSRC_FILEで' / ' + のSRC_FILEで) 19。 印刷(' 成功したアップロード' ) 20は 除く例外としてE: 21は、 印刷(E) 22がある (ssh.close) 23 24 25 DEF 解凍(): 26 ssh._transport = 運搬 27 STDIN、STDOUT、標準エラー= ssh.exec_command(' CD ' + dsc_path + ' && ' + ' 解凍-o ' + SRC_FILE) 28 結果= stdout.read( ).decode() 29 の場合(result.strip)=!'' : 30 プリント(' 解压成功' ) 31 、他: 32 印刷("エラーメッセージ' + stderr.read()デコード())。 33 ssh.close() 34 35 36 なら __name__ == ' __main__ ' : 37 アップロード() 38 解凍()
テストスクリプトは、個別に実行するかPycharmは、以下のpycharmテストでcmdで、/ tmpディレクトリのLinuxサーバや解凍にapps.zipファイルをアップロードすることができます
1 Pythonのupload_file.py apps.zip / tmpの 2 正常にアップロード 3解凍成功
次に、ファイル圧縮・解凍があるかどうかを確認するために/ tmpディレクトリのLinuxサーバーにログイン
概要:これは単なるアップロード解凍、してください展示会です。