IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第37回 ネットワーク自動化実践レシピ(9)ダッシュボードの作成(4) (小澤昌樹) 2025年9月

みなさん、こんにちは。

第1回から第3回にかけて、ネットワーク機器からの情報収集、データベースへの保存、そしてExcelレポートへの出力という一連の作業を手動で行う仕組みを構築してきました。ただ、これらの作業を日々の業務として手動実行するのは手間がかかるだけでなく、実行忘れやヒューマンエラーのリスクも伴います。

そこで今回は、この情報収集とレポート作成の一連の処理を定期的に自動実行できるようにするための仕組みについて解説します。

1. なぜ定期自動化が必要なのか?

ネットワーク管理において、情報の「鮮度」は非常に重要です。最新のデータが揃っていなければ、監視や分析は意味をなしません。

  • 定期監査のためのデータ収集(日次・週次のログ提出など)
  • 障害兆候の早期検知(CPU使用率の急上昇など)
  • 可視化ダッシュボードのリアルタイム更新(次回扱います)

これらを人手で行うのは現実的ではありません。そこで、OSに備わっている「スケジューラ」を活用することで、処理を自動化することが重要です。

2. 自動化の選択肢

処理を自動で実行するには、OSごとに標準的な方法が用意されています。

OS 方法 概要
Linux / UNIX cron 古くからある定番のスケジューラ
Windows タスクスケジューラ GUIベースで柔軟な設定が可能
MacOS launchd または cron Mac独自の方式またはcron

今回はcronを中心に解説しますが、Windows環境でのスケジューリング方法も併せて紹介します。

3. Linux環境:cronによるスケジューリング

3.1 cronの基本

cronは、あらかじめ決めた時刻に自動的にスクリプトやコマンドを実行するための仕組みです。

設定ファイルである crontab に、以下のような形式でスケジュールを記述します。


分 時 日 月 曜日 実行コマンド

例えば、毎日午前3時にPythonスクリプトを実行する設定は次のようになります。


0 3 * * * /usr/bin/python3 /home/user/network_monitor.py
3.2 スクリプトの準備

まず、前回までに作成した情報収集スクリプト(データベース保存付き)とExcel出力スクリプトを、以下のように1つのファイルにまとめておくと管理が楽です。


/home/user/scripts/collect_and_export.py

この中では以下の処理を順番に行います。

1.ネットワーク機器の情報を取得(NAPALM)
2.SQLiteへ保存
3.Excelレポートへ出力

3.3 cron設定の手順

1.ターミナルで以下を実行


 crontab -e

2.以下を追記


 0 6 * * * /usr/bin/python3 /home/user/scripts/collect_and_export.py >> /home/user/logs/monitor.log 2>&1

この例は、毎朝6時にスクリプトを実行し、ログを monitor.log に出力する設定です。

4. Windows環境:タスクスケジューラを使う

Windowsでも、Pythonスクリプトを自動実行できます。GUIで設定できるため、cronよりも直感的に扱えます。

4.1 スクリプトの確認

スクリプトは .py ファイルとして保存し、実行可能なPython環境は整えておきます。

4.2 タスクスケジューラの設定手順

1.「タスクスケジューラ」を検索して起動
2.「基本タスクの作成」を選択
3.名前と説明を入力
4.「毎日」「特定の時間」などの実行頻度を設定
5.「プログラムの開始」を選び、以下のように入力します
 a.プログラム:C:¥Path¥To¥python.exe
 b.引数の追加:"C:¥Path¥To¥collect_and_export.py"
 c.開始フォルダー:C:¥Path¥To¥スクリプトフォルダ
6.設定を保存し、有効化されていることを確認

5.よくあるトラブルと対処法
5.1 実行されない(cron)
  • PATH が限定されるため、絶対パスで記述しましょう
  • python3 ではなく /usr/bin/python3 などと明示してみましょう
5.2 パーミッションエラー
  • .py スクリプトに実行権限をつける(chmod +x)
  • データベースファイルに対する書き込み権限も確認してください
5.3 実行結果が分からない
  • ログ出力先を明示し、2>&1 を付けて標準エラーも記録します
  • スクリプト側で print() を多用して確認用メッセージを出力(デバッグ)します
6. 応用例:スクリプトの分割と柔軟な運用

長くなったスクリプトを、例えば、以下のように機能ごとに分割しておくと保守性が向上します。

  • collect_data.py:情報取得とDB保存
  • export_report.py:DB→Excel出力
  • daily_task.sh:上記2つを順に実行するShellスクリプト

cronでは daily_task.sh を実行することで、タスクの中身を変更しやすくなります。


#!/bin/bash
python3 /home/user/scripts/collect_data.py
python3 /home/user/scripts/export_report.py

このような構成にすることで、将来的な処理追加(通知、アーカイブなど)にも柔軟に対応できます。

7. まとめ

今回は、情報収集スクリプトやレポート出力処理を「定期的に自動実行」する方法を紹介しました。cronやWindowsタスクスケジューラを活用することで、人手をかけずに常に最新のデータを自動で取得し、必要な形式に整えて保管・共有することが可能になります。

次回(第5回)は、このようにして蓄積されたデータを活用して、リアルタイムでネットワーク状態を可視化するダッシュボードの構築について解説します。Webブラウザ上で直感的に状態を把握できるインターフェースは、日常の運用監視や障害対応を大きく支援してくれます。どうぞお楽しみに。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes