Linux:サーバのログの情報を収集してSQLITEに投入 のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Linux:サーバのログの情報を収集してSQLITEに投入 へ行く。
- 1 (2012-01-18 (水) 01:33:21)
- 2 (2012-01-18 (水) 01:44:55)
- 3 (2012-01-18 (水) 11:00:26)
Linux:サーバのログの情報を収集してSQLITEに投入 †
サーバが一桁台であれば、目で見てまとめることもできますが、3桁台となるとそうもいかないです。
実際そういう状況に遭遇しているため、シェルをいろいろ作って、最終的にSQLITEに投入して情報をいろいろ見れるようにしました。
せっかくなのでそのまま残します。
- 01_findlogs.sh
- 「target.txt」に記載されるサーバにsshでfindコマンドを実行し、結果ファイルを出力します。
- 02_seikei.sh
- 01_findlogs.shの出力ファイルを入力として、DBに投入するようにsed、awkを使って整形します。
このシェルの中のsedで、あとからDBでグルーピングしやすいようにどのログかを分かるようにデータを整形してます。 - 03_CreateTable?.sh
- ddl.sqlを実行してsqliteにテーブル、インデックスを作成します。
- ddl.sql
- 03_CreateTable?.shから実行されるDDL文が入ってます。
- 04_to_sqlite.sh
- 02_seikei.shの出力ファイルを入力として、03で作ったテーブルにデータを投入します。
各スクリプトの中身 †
こんな感じです。
なお、01、02、04のスクリプトからは、共通のファイル「target.txt」が入力となります。
■target.txt(IPアドレスもしくはホスト名を1行1レコードで記述)
192.168.1.100 localhost
#refpre(01_findlogs.sh,,1);
#refpre(02_seikei.sh,,1);
#refpre(03_CreateTable?.sh,,1);
■ddl.sql(03で実行されるDDL)
#refpre(ddl.sql,,1);
#refpre(04_to_sqlite.sh,,1);
データをSQLITEに投入したら、もう好きなように調理してー