Linux パイプラインの実践的な応用
この最後のステップでは、ログファイルの分析、データファイルの処理、および一般的なシステム管理タスクの解決を通じて、Linux パイプラインの実際のアプリケーションをいくつか探ります。
ログファイルの分析
システム管理者は、ログファイルから有用な情報を抽出する必要があることがよくあります。パイプラインを使用して、server_log.txt ファイルを分析してみましょう。
- 各ログレベル(INFO、WARNING、ERROR)の出現回数をカウントします。
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
出力:
4 INFO
3 ERROR
2 WARNING
- すべてのタイムスタンプとログレベルを抽出します。
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
出力:
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
CSV データの処理
パイプラインを使用して、sales.csv ファイルを分析してみましょう。
- 販売された一意の製品を抽出してカウントします。
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
tail -n +2 コマンドは、CSV ファイルのヘッダー行をスキップします。
出力:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- 販売されたユニットの総数を計算します。
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
出力:
113
このパイプラインは、3 番目の列(Units)を抽出し、すべての値を "+" 記号で結合し、bc 電卓を使用して合計を計算します。
システム監視タスク
Linux パイプラインは、システム監視および管理タスクにも役立ちます。
- 最も多くのメモリを消費している上位 5 つのプロセスを一覧表示します。
ps aux | sort -k 4 -r | head -6
このコマンドは、4 番目の列(メモリ使用量)で降順にソートされたプロセスを一覧表示し、上位 6 行(ヘッダーを含む)を表示します。
- 10MB より大きいすべてのファイルを見つけ、サイズでソートします。
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
このコマンドは、サイズでソートされた大きなテストファイルを表示します。出力は次のようになります。
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
この例は、ファイルを見つけてサイズでソートする方法を示しています。これらのファイルは、Linux でのファイルサイズフィルタリングの仕組みを示すために、セットアップ中に特別に作成されました。
これらの例は、Linux パイプラインを実際の問題を効率的に解決するためにどのように使用できるかを示しています。単純なコマンドを組み合わせることで、複雑なスクリプトやプログラムを作成せずに、強力なデータ処理ワークフローを作成できます。