システム管理者の日常のタスクは、常にすべての人にとって異なります。ただし、管理対象システムで同等に実行される単純なタスクがあります。管理者の時代にディスク容量がリスク要因であった時代には、デバッグするディレクトリまたはファイルシステムを見つけることが非常に重要でした。
現在、主に仮想マシンでは、管理対象システムを正常に保ち、プロセスの実行とログファイルへのログインに使用できるスペースを確保することも同様に重要です。
[次のこともお勧めします:Linuxスクリプト:Bashでのwhileループの3つのハウツー]
開始するための最良の方法は、出力を新しい実行への入力としてリンクし、ワンライナーと呼ばれるものを形成することによって、最も単純なコマンドを使用することです。つまり、コマンドラインインタープリターを使用してコマンドの標準出力を読み取り、それを次のコマンドの入力変数として配置します。このため、xargsコマンドはその変数を受け取って実行するのに役立ちます。
実用的な例を確認してください:
チケットRH0502201-1:prodenv本番サーバーは「ルートファイルシステムのディスク容量が不足しています」というアラートを送信します。ファイルシステムのパージが要求されます。
-
サーバーにアクセスし、
/ filesystem
のスペースを確認します :
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/prodenv--vg-root 720G 720G 0 100% /
-
ルートディレクトリに移動し、ディレクトリを一覧表示し、各ディレクトリで使用されているディスク容量を計算するには、
pipe
を使用します。 およびxargs
ls
を送信しますdu
へのコマンド出力 コマンド:
# ls | xargs du -sk
-
パイプcode>を使用 ここでも、sortコマンドを使用して、ディレクトリで使用されているディスク容量の最小から最大までの出力を一覧表示します。
# ls | xargs du -sk | sort -n
-
この場合、占有されているディスク容量が最も多いディレクトリのみが必要なので、リストをリストの最後の5つのディレクトリに制限できます。別のパイプとテールコマンドを使用する:
# ls | xargs du -sk | sort -n | tail -5
注 : du
のエラーメッセージを回避したい場合 コマンドにアクセスできませんでした。標準エラー出力を/dev/nullデバイスに送信してください。
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5
-
ディレクトリのリストを定義したら、AWKを使用して、元のリストの2列目にある新しいソート済みディレクトリのリストを作成します。
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }'
-
ソートされたリストは、変数として
du
に再入力されます 人間が読める形式で使用されているスペースを表示します。別のパイプcode>を使用する および
xargs
:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh
-
ファイルシステムを圧倒しているファイルを削除または圧縮して、できるだけ多くのディスク領域を解放する可能性を検証します。
おそらく、手順5と6を回避して、直接クリーニングを実行することが可能です。ただし、多くの場合、これらのディレクトリは一部のアプリケーションに属し、責任者に通知します クリーニングを実行するため、または単に問題解決ドキュメントの実行されたプロセスの証拠として、その当事者。
最後に、ワンライナー 次のようになります:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh
このワンライナー は、システム管理者として日常業務で使用される私の武器の一部です。お役に立てば幸いです。君はどうでしょう? ワンライナー 袖は上がっていますか?
[この無料の電子書籍を入手する:ダミーのKubernetesクラスターを管理する。 ]