ファイルシステムの使用量を確認し、スペースをクリーンアップするスクリプト

ファイルシステムの使用量を確認し、スペースをクリーンアップするスクリプト

私はシェルスクリプトを初めて使用します。ディストリビューションが異なる複数のUnixシステム(RHEL、CENTOS、FEDORA、UBUNTU)があります。以下のファイルシステムのディスク容量の使用例をスクリプトで確認する方法はありますか?

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  6.7G  2.3G  4.4G  34% /
devtmpfs                 361M     0  361M   0% /dev
tmpfs                    371M     0  371M   0% /dev/shm
tmpfs                    371M  5.1M  366M   2% /run
tmpfs                    371M     0  371M   0% /sys/fs/cgroup
/dev/sda1                497M  124M  374M  25% /boot
tmpfs                     75M     0   75M   0% /run/user/0

そして、ディスク容量が90%以上であることを確認してスペースを空にします。

答え1

df -h人間が読むことはできますが、スクリプトには適していない出力を投稿しました。

5列ではなく4列(使用可能)の割合に注意を払うことをお勧めします。

あなたのスクリプトは、「安全に」整理できる古代のログファイルを知っているようです。指定されたクリーンアップ操作の場合、ファイルセットは正確に1つのファイルシステムにあります。dfこの問題に本当に興味がある場合は、システム全体の出力を解析する必要はありません。

cd /var/log
df -k . | awk '{print $4}'

これは、ユーザーが興味を持っている量、つまり現在のディレクトリのファイルシステムの空き容量を正確に示す(人間が読めるテキストのサフィックスではなく)キロバイト単位の数値レポートを提供します。周りにwhileループを作成し、ループを通過するたびに1つのファイル(最も古いファイル)をクリーンアップできます。ループを開始する前に、完全であることを確認してください。du -k必要に応じて「十分な」スペースを確保できることを確認してください。何が集中すべきかをdir1/*知るために何かを削除するのは楽しいことではありません。dir2/giant_file

関連情報