MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Python
  5. 【Python】NW機器へのSSH接続プログラム作成~データ取得とエクセル書き込みまで

【Python】NW機器へのSSH接続プログラム作成~データ取得とエクセル書き込みまで

2020 2/14
Python
2020年2月14日

現在、NW機器のコンフィグパラメータシートをPythonで開発をしているのですが、現在のところまでの構築までをまとめました。

コードを公開するので参考にしてください。

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

NW機器へのSSHアクセスからエクセルシートへの反映までをPythonで自動化

現在、パーツ単位で動作確認をしており、以下は途中まで、エクセルシートへの書き込みプログラムとなります。

動作は、SSHへのアクセス(IP入力)ID/Passとコマンドを記載し、プログラムを実行することで出力結果をエクセルへ落とし込みます。

プログラムコード

※ ssh_test.py

import paramiko
import pandas as pd
import re

#sshアクセス後にコマンド出力をcsvファイルへ書き込み
def ssh_cmd(ip, user, password, cmd):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(ip, username=user, password=password, port=22)

    stdin, stdout, stderr = client.exec_command(cmd)
    stdin.write(cmd)

    for o in stdout:
        with open('file.csv', 'a', newline='') as f:
            print(o, file = f)
            
    for e in stderr:
        print(e)

    return

#SSHアクセス/IP/userID/Password/コマンド入力
ssh_cmd('192.168.10.1', 'root', 'password', 'df -h',)


print('コンフィグ取得 > csvファイル保存完了')

# 出力結果のスペースをカンマ区切りに変換
with open('file.csv', 'r', newline='') as file, \
    open('file_out.csv', 'w', newline='') as fileout:
    
    text = re.sub(r'\s* ', ',', file.read())
    print(text, file = fileout)
    print('置換完了')


# CSVファイルの読み込み
col_names = ['c{0:02d}'.format(i) for i in range(100)]
data = pd.read_csv('file_out.csv', encoding='cp932', names = col_names)

# Excel形式で出力
data.to_excel('excel-data.xlsx', encoding='utf-8')

print('CSV > Excel変換完了')

モジュールは以下を使用しています。

  • import paramiko : sshアクセス用のモジュール
  • import pandas as pd : CSV、エクセルへの読み取り、書き込みをするモジュール
  • import re : エクセルのセルごとにデータを出力させるために、スペースをカンマに置換するモジュール

また、以下はそれぞれのコードの説明となります。

  • 14行目~:アクセスしたNW機器から取得したデータを「file.csv」へ書き込み
  • 24行目:SSHアクセス/IP/userID/Password/コマンド入力
  • 30行目:「file.csv」の出力結果のスペースをカンマ区切りに変換し、「file_out.csv」へ出力
  • 39行目~:「pandas」で、csvファイル読み込み。「col_names」はカラムを指定し読み込ませないとエラーが発生するために絡む番号を100列指定
  • 43行目:「file_out.csv」のデータを、「excel-data.xlsx」へエクセル形式で出力

実行結果 エクセルシートへの反映

PS C:\Python> python .\ssh_test.py
コンフィグ取得 > csvファイル保存完了
置換完了
CSV > Excel変換完了
PS C:\Python>

データが反映されたエクセルシートの中身です。
今回は、Linuxサーバへのデータ容量「df -h」を実行した結果を反映しています。

残りの作業は必要なデータ情報の抜粋と、指定のセルの位置へのデータ書き込みとなります。
続きのデータは次回公開します。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Python
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次