CTC 教育サービス
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes
みなさん、こんにちは。
第1回から第3回にかけて、ネットワーク機器からの情報収集、データベースへの保存、そしてExcelレポートへの出力という一連の作業を手動で行う仕組みを構築してきました。ただ、これらの作業を日々の業務として手動実行するのは手間がかかるだけでなく、実行忘れやヒューマンエラーのリスクも伴います。
そこで今回は、この情報収集とレポート作成の一連の処理を定期的に自動実行できるようにするための仕組みについて解説します。
ネットワーク管理において、情報の「鮮度」は非常に重要です。最新のデータが揃っていなければ、監視や分析は意味をなしません。
これらを人手で行うのは現実的ではありません。そこで、OSに備わっている「スケジューラ」を活用することで、処理を自動化することが重要です。
処理を自動で実行するには、OSごとに標準的な方法が用意されています。
OS | 方法 | 概要 |
Linux / UNIX | cron | 古くからある定番のスケジューラ |
Windows | タスクスケジューラ | GUIベースで柔軟な設定が可能 |
MacOS | launchd または cron | Mac独自の方式またはcron |
今回はcronを中心に解説しますが、Windows環境でのスケジューリング方法も併せて紹介します。
cronは、あらかじめ決めた時刻に自動的にスクリプトやコマンドを実行するための仕組みです。
設定ファイルである crontab に、以下のような形式でスケジュールを記述します。
分 時 日 月 曜日 実行コマンド
例えば、毎日午前3時にPythonスクリプトを実行する設定は次のようになります。
0 3 * * * /usr/bin/python3 /home/user/network_monitor.py
まず、前回までに作成した情報収集スクリプト(データベース保存付き)とExcel出力スクリプトを、以下のように1つのファイルにまとめておくと管理が楽です。
/home/user/scripts/collect_and_export.py
この中では以下の処理を順番に行います。
1.ネットワーク機器の情報を取得(NAPALM)
2.SQLiteへ保存
3.Excelレポートへ出力
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 に出力する設定です。
Windowsでも、Pythonスクリプトを自動実行できます。GUIで設定できるため、cronよりも直感的に扱えます。
スクリプトは .py ファイルとして保存し、実行可能なPython環境は整えておきます。
1.「タスクスケジューラ」を検索して起動
2.「基本タスクの作成」を選択
3.名前と説明を入力
4.「毎日」「特定の時間」などの実行頻度を設定
5.「プログラムの開始」を選び、以下のように入力します
a.プログラム:C:¥Path¥To¥python.exe
b.引数の追加:"C:¥Path¥To¥collect_and_export.py"
c.開始フォルダー:C:¥Path¥To¥スクリプトフォルダ
6.設定を保存し、有効化されていることを確認
長くなったスクリプトを、例えば、以下のように機能ごとに分割しておくと保守性が向上します。
cronでは daily_task.sh を実行することで、タスクの中身を変更しやすくなります。
#!/bin/bash
python3 /home/user/scripts/collect_data.py
python3 /home/user/scripts/export_report.py
このような構成にすることで、将来的な処理追加(通知、アーカイブなど)にも柔軟に対応できます。
今回は、情報収集スクリプトやレポート出力処理を「定期的に自動実行」する方法を紹介しました。cronやWindowsタスクスケジューラを活用することで、人手をかけずに常に最新のデータを自動で取得し、必要な形式に整えて保管・共有することが可能になります。
次回(第5回)は、このようにして蓄積されたデータを活用して、リアルタイムでネットワーク状態を可視化するダッシュボードの構築について解説します。Webブラウザ上で直感的に状態を把握できるインターフェースは、日常の運用監視や障害対応を大きく支援してくれます。どうぞお楽しみに。
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes