ディスク使用量が多いディレクトリを抽出するbashスクリプトの作成例です。
duコマンドの出力結果からメガバイド以上のパスを抽出しています。
※目次をクリックすると目次の下部にコンテンツが表示されます。
duコマンドの出力例
# du --max-depth=1 -h -x /var/tmp 375M /var/tmp/yum-winuser-71dgm6 4.0K /var/tmp/pear-build-rootp6qfrT 43M /var/tmp/yum-wp-LxzTYT 955M /var/tmp/yum-php-x0qo85 144K /var/tmp/tmpcdkwC8 1.4G /var/tmp : :
※duコマンドを使ったディスク使用量の調査方法については以下の記事を参照。
・Linuxでディスク使用量が多いディレクトリを調べる方法(1)
・Linuxでディスク使用量が多いディレクトリを調べる方法(2)
正規表現を使って抽出
・二重角括弧、”=~”を使う。
・行頭から[数値][少数点又は数値]・・[GまたはM]と続く文字列のみ表示
if [[ $line =~ ^[0-9][\.|0-9]*[G|M].* ]]; then
※数値部分の正規表現は[\d]の指定方法では意図した通りに動作しませんでした。
●サンプルプログラム
・行頭から[数値][少数点又は数値]・・[GまたはM]と続く文字列のみ表示
if [[ $line =~ ^[0-9][\.|0-9]*[G|M].* ]]; then
※数値部分の正規表現は[\d]の指定方法では意図した通りに動作しませんでした。
●サンプルプログラム
#!/bin/bash file_disk="/home/user/bkup/tmp_disk" du --max-depth=1 -h -x /home/user > $file_disk while read line; do if [[ $line =~ ^[0-9][\.|0-9]*[G|M].* ]]; then echo $line fi done < $file_disk
出力結果をCSVファイルで出力
●修整内容
・trコマンドで半角スペースをカンマに置換。
-sオプションで連続する半角スペースを一つにする。
・出力結果に日付を追加
●サンプルプログラム
・trコマンドで半角スペースをカンマに置換。
-sオプションで連続する半角スペースを一つにする。
・出力結果に日付を追加
●サンプルプログラム
#!/bin/bash ftmp_disk="/home/user/bkup/tmp_disk" fout_disk="/home/user/bkup/out_disk" du --max-depth=1 -h -x /home/user > $ftmp_disk while read line; do if [[ $line =~ ^[0-9][\.|0-9]*[G|M].* ]]; then echo "`date +"%Y/%m/%d"`,`echo $line | tr -s " " ,`" >> $fout_disk fi done < $ftmp_disk
-
CentOSの概要
- RHEL6、CentOS6の64ビットサポートとhuge pages
- RHEL6、CentOS6の64ビットサポートとNUMA
- CentOS6インストール手順のメモ
- CentOSのブートの流れ、ランレベルの指定
- procファイルシステムの概要
- sysctlコマンドでカーネルパラメータの参照、変更
- CentOS6の各種ネットワーク設定ファイルとインタフェース制御スクリプト
- cron、anacronで自動定期実行
- at、batchコマンドの概要
- CentOS6のシステムログ
- rsyslogの設定方法
- システムログのローテート設定の確認
- CentOSのハードウェア情報を表示するコマンド
- CentOSでパーティション、スワップ、ディスク情報を確認
- LinuxのLVMの概要と表示コマンド
- ボリュームグループ、論理ボリューム作成、ファイルシステム作成、マウント設定、物理ボリュームを追加
- CentOSで論理ボリューム、ext4ファイルシステムを拡張
- CentOSのLVMでボリュームグループから物理ボリュームを削除
- WindowsからCentOS6にリモートデスクトップする手順
- viエディタの使用方法
- HTMLのマニュアルをLinuxのターミナル画面上で読む
- findコマンドで直近に更新されたファイルを調べる方法
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- ディスク使用量が多いディレクトリを抽出するbashスクリプト
- psコマンドで全プロセスを表示する方法と表示結果の見方
- プロセス階層、プロセスグループ、セッションを確認するには?
- psコマンドでスレッドに関する情報を表示するには?
- netstat、nmapを使ってリッスンポートを確認する方法
- 日本語設定、シェル環境設定
- CentOSのユーザー環境設定ファイル(bashrc、profile)
- umaskはどこで設定されている?
- シェル変数と環境変数の違い
- CentOSのネットワークフィルタリング設定を一から行う
- CentOS6のTCPラッパーの概要と設定方法
- CentOS6のユーザー管理の概要とコマンド操作
- ファイルのパーミッション設定、ディレクトリは要注意
- Linuxでスティッキービットが設定されているか確認する方法
- sudoで特定のコマンドのみをroot権限で実行する
システム管理
Linuxコマンド操作
シェル環境設定
ネットワーク関連
ユーザー管理、権限
- bashのシェルスクリプト実行方法
- bashのシェルスクリプト プログラミング方法メモ
- bashのパイプの使い方
- bashのlist、サブシェル、コマンドブロック
- bashでの式の評価と算術演算
- bashでパターンマッチを使って条件評価
- bashのfor文で配列やセパレータ付き文字列から各要素を取り出す
- bashのfor文を使ってディレクトリ内のファイル一覧とディレクトリ一覧を出力
- bashのselect制御構造
- bashのパターンマッチ演算子の使い方
- ファイルの中身を一行ずつ読んで文字列を置換するbashスクリプト
- ディスク使用量が多いディレクトリを抽出するbashスクリプト
- ディレクトリ内の複数のファイルに対しファイル内の文字列を置換するbashスクリプト
- Bashスクリプトでmysqldumpバックアップと世代管理
- Dos攻撃など大量アクセスのログを検知するBashスクリプトを作成