web-dev-qa-db-ja.com

毎日のディスク使用状況レポートのシェルスクリプト

ローカルドライブでバックアップを行っています。ドライブは/ mediaフォルダーにマウントされます。ここで、毎日cronジョブを実行して、特定のフォルダーで使用されているディスクの量と、ドライブに残っている空き容量を表形式で通知します。

その情報をデータベースに挿入でき、locahostのWebページからその情報を見ることができればよいでしょう。

Ubuntu10.04を使用しています。

2
John

このワンライナーは、実行されたディレクトリの最上位ディレクトリを一覧表示し、サイズをMB単位で並べ替えて出力します。あなたはあなたの好みに合わせてそれを微調整することができます。

for d in $(find . -maxdepth 1 -type d); do du -sm $d; done | sort -nk 1

簡単な調整、

  1. find /dir/path-指定されたディレクトリに対してこれを実行します
  2. duは他の形式で使用できます。これは、MB単位で要約を実行しています。
  3. ディレクトリにスペース文字が含まれている場合は、前に、
    Dennisによってさらにクリーンアップされました。そのヒントに感謝します)
    IFS=$'\n';
    私はどういうわけか、グロブではなく正確なフィルターに慣れています。デニスにはもっとアイデアがあります
  4. sort -nrk 1を使用して、サイズの降順で出力を並べ替えることができます
  5. そこに-mindepth 1を追加できませんでした。
    これを追加すると、結果にベースディレクトリ(/dir/pathなど)のサイズが表示されなくなります。

ここでの他のいくつかの答えは、おそらくこれをデータベースに保存し、Webページに表示する上で良いハンドルを与えるでしょう。それをCSVファイルに変換し、ブラウザーにファイルパスを含む要約を一覧表示しただけです(ただし、時間の経過とともに大量のデータを保存および表示するには、あまり最適ではない可能性があります)。

[メタ、クエリの編集:この回答を編集すると、4番目の項目がプレビューに4として表示されます。
しかし、実際のビューでは1と表示されます。誰かが私がこの値下げで欠けているものを知っていますか?;
これは、ポイント3の改行を削除したときに修正されました。
ここでの意味を確認するには、以前のリビジョンを確認する必要があります...]


基本的な更新(コメントに基づく):

  1. Ubuntuでのコマンドライン処理のために ターミナルを使用して を見てください
  2. ターミナルを起動したら、
    目的のディレクトリに移動します(サンプルディレクトリを試してください)。
    (たとえば、Firefoxのプロファイル-cd ./mozilla
    そして、そのディレクトリであまり多くのことを試みないでください。ブラウザが壊れてしまう可能性があります。
  3. 次に、最初のforループ行を上からそのままコピーして、そのターミナルのコマンドプロンプトに貼り付けます。
  4. を押します Enter キー
  5. 出力を見てください
  6. 'スクリプト'のコマンドラインの使用方法の詳細を取得するための別のリファレンス、
    Bash Shell Tutorials スーパーユーザー

そこからどのレベルの詳細が必要かを教えてください。

0
nik

パーティション上のスペースをテーブルとして使用する場合は、次のように呼び出すだけです。

df -h | column -t

これをメールアドレスを使用してcrontabに追加します。df-h|列-t

1
ℝaphink

ニースの列出力の場合、pts /?を使用してリモートセッションを使用しているときにスペースが制限されないように、POSIX出力形式を使用します。

df -hP |列-t

0
bvishal4u