Linux
如何每天檢查硬碟可用空間,如果低於1GO刪除文件
我需要製定一個計劃的任務:每天檢查硬碟上的可用空間,如果此條件得到驗證,則刪除文件:Available < 1Go。
這是我編寫但似乎不起作用的腳本:
var="df -h | sed -n 2p |awk '{ print $4 }' " if[var<15];then ./bin/dss stop rm -rf tmp/* rm -rf caches/* ./bin/dss start fi
我還沒有做 crontab 部分。
試試下面的程式碼。
#!/bin/bash var=$(df -h | sed -n 2p |awk '{ print $4 }') if [ "${var}" le "15" ] then ./bin/dss stop rm -rf tmp/* rm -rf caches/* ./bin/dss start fi
我強烈建議不要解析
df
輸出。如果您
stat
從 GNU coreutils 獲得,您可以通過以下方式獲取非 root 使用者可用的空閒塊數stat -f /mountpoint -c '%a'
塊大小由
stat -f /mountpoint -c '%S'
並且條件可以簡潔地寫為:
[ `stat -f /mountpoint -c '%a'` -lt 262144 ] && do_your_stuff
(假設塊大小為 4096,1 GB 為 1073741824 字節 - 即 1073741824/4096)
至於刪除(文件,根據問題),可能最安全的方法是:
find /directory -type f -print0 | xargs -0 -r rm -f
甚至更好:
find /directory -type f -delete
使用
rm -f /something/*
只是自找麻煩。