Linux
用於檢測昨天修改的文件並檢查其大小是否高於某個門檻值的 Bash 腳本
我正在為
stat
目錄中的所有文件編寫腳本,然後找到昨天創建的特定文件並告訴我它們是否大於某個大小。所以基本上我需要這個來找到那個文件,它是一個 .gz 類型的文件(並且應該至少在 24 小時前最後修改)並讓它檢查它的大小以確保它不低於某個數字,比如 4 KB例子。如果是,在 4 KB 大小以下,它需要回顯“失敗”或類似的東西,如果它高於該門檻值,則需要回顯“成功”或類似的東西。
最終,如果它是失敗或成功,我會讓它發送一封電子郵件。
到目前為止,我已經說明了所有文件並找到了過去 24 小時內修改過的文件,但是由於我是新手,所以我現在迷路了:
for file in /*; do stat $file done find /* -mtime -1 -print
我現在有這個執行我的整個電腦,但它最終會在一個特定的目錄上執行。
您可以使用 find 來處理所有內容,包括大小 (
man find
):-size n[cwbkMG] File uses n units of space. The following suffixes can be used: `b' for 512-byte blocks (this is the default if no suffix is used) `c' for bytes `w' for two-byte words `k' for Kilobytes (units of 1024 bytes) `M' for Megabytes (units of 1048576 bytes) `G' for Gigabytes (units of 1073741824 bytes)
所以你可以這樣做:
find . -name "*.gz" -size -4k -mtime -1 -printf 'Failure %p\n' find . -name "*.gz" -size -4k -mtime +1 -printf 'Success %p\n'