ホームページ  >  記事  >  バックエンド開発  >  Pythonで自動運​​用保守を実装する方法

Pythonで自動運​​用保守を実装する方法

王林
王林転載
2023-05-17 12:22:132237ブラウズ

1. インストール

pip install paramiko

2. モジュールのインポート

import paramiko

3. 使用

def initSshClinet (): '' 初期化、サーバーにログインするための SSH 接続アカウントとパスワード: return: sshClinet '' ip = ""#サーバーの IP アドレス sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy() ) sshClinet.connect( ip, 22, userName, pw, timeout=360) return sshClinet

def exeCommond(commond): '' シェルコマンドを実行します '' stdin, stdout, stderr = sshClient.exec_command( command) outStr = stdout .readlines() print("\n".join(outStr))

def sftpUploadFile(localPath, RemotePath): #SFTP インスタンスを取得します sftp = sshClinet.open_sftp() #アップロードアクション sftp.put(localPath , RemotePath)

def sftpDownloadFile(localPath, RemotePath): #SFTP インスタンスを取得します sftp = sshClinet.open_sftp() #ダウンロードアクションを実行します sftp.get(localPath, RemotePath)

最後に必ず閉じるようにしてくださいConnection

sshClient.close()

#秘密キーを使用してログインすることもできます:

## 秘密キーを構成しますファイルの場所 private = paramiko.RSAKey.from_private_key_file('/Users/ ch/.ssh/id_rsa')#SSHClientclient = paramiko.SSHClient()#サーバーのホスト名とキー情報を保存するポリシーを自動的に追加します。が追加されていない場合、ローカルの know_hosts ファイルに記録されていないホストはクライアントに接続できません。.set_missing_host_key_policy(paramiko.AutoAddPolicy())#SSH サーバーに接続し、ユーザー名とパスワードで認証します client.connect( hostname='10.0.0.1',port=22,username='root',pkey=private)

Learn

paramiko には、SSHClient と SFTPClient という 2 つのコア コンポーネントが含まれています。

SSHClient は、Linux ssh コマンドに似た機能を持ちます。SSH セッションのカプセル化です。このクラスは、トランスポート、チャネル、および SFTPClient 確立メソッド (open_sftp) をカプセル化します。通常、リモート Order を実行するために使用されます。 SFTPClient の機能は Linux の sftp コマンドに似ており、SFTP クライアントのカプセル化であり、ファイルのアップロード、ダウンロード、ファイル権限の変更などのリモート ファイル操作を実装するために使用されます。

チャネルはソケットの一種であり、安全な SSH 伝送チャネルです。トランスポートは暗号化されたセッションです。使用すると、暗号化されたトンネル (チャネル) が同時に作成されます。このトンネルは ChannelSession と呼ばれ、クライアント間で維持されます接続されたオブジェクトでは、connect()/start_client()/start_server() を使用してセッションを開始します

SSHClient の一般的なメソッドの概要

connect( ): リモート サーバーの接続を実現します。認証では、ホスト名のみがこのメソッドの必須パラメータです。

hostname 接続先ホスト port=SSH_PORT 指定ポート username=なし 検証済みユーザー名password=なし 検証済みユーザーパスワード pkey=なし 秘密鍵認証方式 key_filename=なし ファイル名またはファイルリスト、秘密鍵ファイルタイムアウトを指定=None オプションの tcp 接続タイムアウトallow_agent=True SSH エージェントへの接続を許可するかどうか、デフォルトは Trueです。Allow look_for_keys=True ~/.ssh 内の秘密キー ファイルを検索するかどうか、デフォルトは Trueです。Allow compress=False オンにするかどうかCompression

set_missing_host_key_policy(): リモート サーバーが know_hosts ファイルに記録されていない場合の応答ポリシーを設定します。 MissingHostKeyPolicy のサブクラスを渡します。現在、3 つの戦略がサポートされています:

接続されたリモート ホストにローカル ホスト キーまたは HostKeys オブジェクトがない場合の戦略を設定します。現在、3 つの戦略がサポートされています:

AutoAddPolicy は、load_system_host_key の構成に依存せず、ホスト名とホスト キーをローカルの HostKeys オブジェクトに自動的に追加します。つまり、新しい ssh 接続を確立するときに、確認のために「yes」または「no」を入力する必要はありません。WarningPolicy は、不明なホスト キーに対する Python 警告を記録するために使用されます。この機能は AutoAddPolicy に似ていますが、load_system_host_key の設定に応じて、新しい接続 RejectPolicy が不明なホスト名とキーを自動的に拒否するように要求します。これはデフォルトのオプションです。

exec_command(): リモート サーバー上で Linux コマンドを実行するメソッドです。

open_sftp(): 現在の ssh セッションに基づいて sftp セッションを作成します。このメソッドは SFTPClient オブジェクトを返します。

SFTPClient の一般的なメソッドの概要

from_transport(cls,t): 接続された SFTP クライアント チャネルを作成する put(localpath, Remotepath, callback=None,confirm= True) ): ローカル ファイルをサーバーにアップロードします。 パラメータ確認: stat() メソッドを呼び出してファイルのステータスを確認し、ls -l get(remotepath, localpath, callback=None) の結果を返すかどうか。: ファイルをサーバーからサーバーにダウンロードします。 local mkdir(): サーバー上にディレクトリを作成します。 delete(): サーバー上のディレクトリを削除します。 rename(): サーバー上のディレクトリの名前を変更します。 stat(): サーバーのファイル状態を表示します。 listdir(): サーバー上のファイルを一覧表示します。サーバーディレクトリ

以上がPythonで自動運​​用保守を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。