Python サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装する
クラウド コンピューティングとモノのインターネットの発展に伴い、サーバーのリモート操作がますます重要になっています。 Python では、Paramiko モジュールを使用して SSH リモート操作を簡単に実装できます。この記事では、Paramiko の基本的な使い方と、Python で Paramiko を使用してサーバーをリモート管理する方法を紹介します。
Paramiko とは
Paramiko は、SSH クライアントと SSH サーバーの接続と制御に使用できる SSHv1 および SSHv2 用の Python モジュールです。 Paramiko モジュールを使用すると、リモートでログインしてサーバーを操作するための Python スクリプトを簡単に作成できます。
Paramiko の基本的な使用法
Paramiko モジュールの基本的な使用法は非常に簡単で、Paramiko の SSHClient クラスを使用して SSH クライアント オブジェクトを作成し、SSH サーバーに接続できます。基本的な例を次に示します。
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('hostname', username='username', password='password')
この例では、最初に SSHClient オブジェクトを作成し、set_missing_host_key_policy メソッドを使用して、不足している SSH キーを自動的に追加できるようにします。次に、connect メソッドを使用して SSH サーバーに接続し、ホスト名、ユーザー名、パスワードをパラメーターとして渡します。
これで、SSH サーバーへの接続に成功しました。次に、SSHClient オブジェクトを使用して、サーバーのオペレーティング システム情報の取得などのリモート コマンドを実行できます。
stdin, stdout, stderr = ssh.exec_command('uname -a') print(stdout.read())
この例では、exec_command メソッドを使用して uname -a コマンドを実行し、出力を取得します。また、stdout.read() を使用して出力を読み取り、出力しました。
リモート コマンドの実行に加えて、SSHClient オブジェクトを使用してファイルをアップロードおよびダウンロードすることもできます。ファイルをアップロードする例を次に示します。
sftp = ssh.open_sftp() local_file = '/path/to/local/file.txt' remote_file = '/path/to/remote/file.txt' sftp.put(local_file, remote_file) sftp.close()
この例では、まず open_sftp メソッドを使用して SFTP セッションを開き、put メソッドを使用してローカル ファイルをリモート サーバーにアップロードします。また、sftp.close() メソッドを使用して SFTP セッションを閉じました。
Paramikoを使ってSSHリモート操作を実現する
Paramikoの基本的な使い方がわかったので、次はParamikoを使ってサーバーをリモート操作してみます。次の機能を実装します。
- SSH サーバーに接続し、いくつかの基本的なコマンドを実行します
- フォルダーの作成と削除
- ファイルのアップロードとダウンロード
まず、Paramiko モジュールをインストールする必要があります:
pip install paramiko
次に、Python スクリプトを作成します。まず、必要なモジュールをインポートします:
import os import paramiko
次に、SSH サーバーのホスト名、ユーザー名、パスワードを含むいくつかの定数を定義します:
HOST = 'hostname' USER = 'username' PASSWORD = 'password'
次に、paramiko.SSHClient を使用できます。 SSH サーバーに接続するクラス:
ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(HOST, username=USER, password=PASSWORD)
この例では、set_missing_host_key_policy() メソッドを使用して、不足している SSH キーを自動的に追加します。
次に、さまざまなタスクを実行するためのいくつかの関数を定義します。 1 つ目はコマンドを実行する関数です。
def run_command(command): stdin, stdout, stderr = ssh.exec_command(command) output = stdout.read().decode('utf-8') return output
この関数はコマンド パラメーターを受け取り、SSHClient オブジェクトの exec_command メソッドを使用してコマンドを実行し、出力を文字列として返します。
次に、ディレクトリを作成する関数を定義します。
def create_directory(path): sftp = ssh.open_sftp() try: sftp.mkdir(path) except IOError: pass sftp.close()
この関数は、パス パラメーターを受け取り、SFTP セッションを使用してディレクトリを作成します。
ファイルをアップロードおよびダウンロードする関数も定義します:
def upload_file(local_path, remote_path): sftp = ssh.open_sftp() sftp.put(local_path, remote_path) sftp.close() def download_file(remote_path, local_path): sftp = ssh.open_sftp() sftp.get(remote_path, local_path) sftp.close()
これらの関数は、それぞれローカル パスとリモート パス (アップロード用)、またはリモート パスとローカル パス (ダウンロード用) を受け取ります)、 SFTP セッションを使用して、対応するファイルをアップロードまたはダウンロードします。
最後に、すべてのタスクを実行する main 関数を定義します:
def main(): # Run a command output = run_command('ls -la') print(output) # Create a directory create_directory('/home/username/new_folder') # Upload a file upload_file('/path/to/local/file.txt', '/home/username/new_folder/file.txt') # Download a file download_file('/home/username/new_folder/file.txt', '/path/to/local/file.txt') # Close the SSH connection ssh.close()
この main 関数は次のタスクを実行します:
- ls -la コマンドを実行し、 print 出力
- 新しいディレクトリを作成しました
- ファイルをアップロードしました
- 同じファイルをダウンロードしました
- SSH 接続を閉じました
Nowこのスクリプトを実行して出力を表示できます:
python ssh.py
結果は次のようになります:
total 20 drwxr-xr-x 1 username username 4096 Aug 15 02:24 . drwxr-xr-x 1 username username 4096 Aug 15 02:20 .. -rw------- 1 username username 1675 Aug 15 02:21 .bash_history -rw-r--r-- 1 username username 220 Aug 15 02:20 .bash_logout -rw-r--r-- 1 username username 3771 Aug 15 02:20 .bashrc drwx------ 1 username username 4096 Aug 15 02:20 .cache drwxr-xr-x 1 username username 4096 Aug 15 02:20 .config drwx------ 1 username username 4096 Aug 15 02:20 .gnupg -rw-r--r-- 1 username username 807 Aug 15 02:20 .profile -rw-r--r-- 1 username username 0 Aug 15 02:21 test.txt
Summary
SSH リモートは、Paramiko を使用して簡単に実現できます。モジュールが動作します。この記事では、Paramiko の基本的な使用法を紹介し、Python で Paramiko を使用してサーバーをリモート管理する方法を示しました。クラウド コンピューティングの分野でも、モノのインターネットの分野でも、Paramiko はサーバー管理の自動化に役立つ非常に便利なツールです。
以上がPython サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。
