skillup

技術ブログ

サーバー・ネットワーク

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

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

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

ロジック

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

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

ソース

気づいたこと

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

参考リンク

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

bash 配列まとめ

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

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

awk コマンド

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

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

執筆者:


comment

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

関連記事

no image

herokuへのdockerコンテナ送付とdocker volumeについて

Contents1 herokuへのdockerコンテナ送付2 ファイル構成2.1 コマンド2.2 注意点3 docker volumeの記述 herokuへのdockerコンテナ送付 Herokuで …

no image

Perlワンライナー他

Perlではcgiと連動してWEBアプリケーションを作るケースが多いですが、元々テキストの編集や置換が非常に便利です。 例えば、あるディレクトリにある特定のファイル名(正規表現使用可)だけを抽出する場 …

no image

composerでのライブラリ登録

今回はPHPのパッケージ管理ツールであるcomposerへのライブラリ登録を。 Contents1 ライブラリの作成2 packagistへの登録3 呼び出す側3.1 composer.json3.2 …

no image

SSH鍵認証について+CakePHP2でのセッション切れ

鍵認証の設定をしたのでその際のメモなどを。 Contents1 SSH鍵認証2 CakePHP2セッション切れ SSH鍵認証 サーバーで公開鍵・秘密鍵を作成 サーバーで公開鍵を登録 クライアント側で秘 …

no image

pidファイルに関して

サーバー上であるサービスを動いている(と思っている)時にstopしようとしたらpidファイルがありませんと怒られました。 pidファイルってよく聞くけどわかっていなかったのでこれを機にメモ。 Linu …

アーカイブ