skillup

技術ブログ

サーバー・ネットワーク

ログ抽出コマンド特集 その2 シェルスクリプトの算術計算、配列とループ

投稿日:2016年4月5日 更新日:

前回の続きですが、ログを収集し、分布(80%台が~%、70%台が~%)を出したいとします。

ロジック

ロジックは以下のような流れになりました。

  1. ログからメモリ使用率を数字として取込
  2. 配列として格納
  3. 各使用率ごとに計算
  4. 最後に%の出力

ソース

気づいたこと

  • 算術式を使うときは(())でくくり、$はいらない。結果を文字列として出力するときは$を付ける
  • 通常の算術式だと小数点まででない。使いたいときはbcを使うか最初にawkで計算をする

参考リンク

シェルで変数のインクリメントに expr を使うと100倍遅い件

bash 配列まとめ

逆引きシェルスクリプト/スペース区切りの文字列を配列に格納する方法

配列の全要素をループで取得する

awk コマンド

多分もっと効率のいい方法はあるんだろうけど、とりあえず最初はこれで妥協。

-サーバー・ネットワーク
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

DNSの仕組み

本日はDNSについて。 とりあえず要点のみ DNSのざっくりとした仕組み ネットワーク上での住所を決める仕組み。 本来はIPがその役割を果たしている. [crayon-5f054fee64215541 …

no image

ロードアベレージ監視シェルスクリプト

ロードアベレージの監視シェルスクリプトについて Contents1 使用コマンド1.1 uptime1.2 /proc/cpuinfo1.3 bc2 ソース3 他参考リンク 使用コマンド uptime …

no image

nginxの設定&php-fpmインストール

本日、久しぶりにPHPのWebアプリを別サーバーに移行したのですが、nginxの設定でかなり手間取りましたのでちょっと記録しておきます。 Contents1 nginxの設定1.1 インストール1.2 …

no image

POP3を使ったメール受信

メールの送信と比べると、プログラムで描く頻度は少ないですが、メールの受信について。 Contents1 POP3サーバー2 プログラムにてPOP3サーバーと通信3 PHPにてメールを取得する場合 PO …

no image

sudoとsuについて

基本的なことの復習。 Contents1 su2 sudo2.1 wheel su Switch User。読んで字のごとくユーザーを切り替えるコマンドです。 su suzukiでユーザーsuzuki …