私はシェルスクリプトを初めて使用します。ディストリビューションが異なる複数の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