Linux Script:自動備份或刪除超過特定時間之過期檔案

在使用 linux 時,有時候我們會想要檢查特定目錄下的所有或某些檔案,
看看是不是這些檔案已經超過時效,若超過則刪除或移動到其他備份媒體,
這通常會用在系統 log 的備份等,要達成這個目的,我們該怎麼做呢?

圖片來源:http://www.icosky.com/icon/find-19-icon/

首先我們要利用 linux 中非常強大的指令 find,
利用 find 找到符合特定規則的檔案後再使用指令參數-exec,
這個參數可以將 find 到的結果接過來執行,如果用得好,應該是項非常好用的工具。

說了這麼多,先來個簡單的例子,例如要把 tmp 資料夾底下的 .txt 檔備份到另一個地方:
# find /tmp/ -type f -name "*.txt" -exec cp {} ~/txt \;

首先就 find 相關的參數作說明:
find /tmp/ -type f -name "*.txt" 
/tmp/ 要尋找的目標資料夾
-type f 尋找類型為檔案
-name "*.txt" 尋找檔名為 .txt 結尾
若有使用萬用字元星號*的話建議加上引號,如 "*.txt" 或 '*.txt',
否則在 find 時似乎會有不明錯誤發生,有些該找到的檔案會找不到!

接著說明 -exec 後方的部分
-exec cp {} ~/txt \;
cp  指令
{}  找到的結果檔案
~/txt  cp 的參數
\;  指令的結束符號

下面這行指令就是找到 /tmp/ 資料夾底下超過一天的 .log 檔,然後把他們都刪掉,
其中 -mtime +1 就是要找超過一天沒有被修改的檔案
# find /tmp/ -type f -name "*.log" -mtime +1 -exec rm -rf {} \;

關鍵字:Linux, Script, bash, shell, 刪除, 超過, 特定時間, 過期, 檔案, 定時, 老舊, 目錄, 資料夾, 備份, 清空, 自動,
參考資料:


相關文章

這個網誌中的熱門文章

證件遺失補辦身分證/健保卡/駕照/行照/信用卡總整理

【博客來折價券】最新100,50,25序號e-coupon免費分享(持續更新)

TOEIC多益成績分數查詢、計算標準與換算對照表

【符碼刷卡報】超商消費繳費懶人包+優惠總整理

銀行代碼查詢:3碼銀行代碼列表、7碼分行代碼查詢

2018最新iPhone XS, XS Max, XR信用卡刷卡回饋/分期攻略!(持續更新)

【國泰KOKO COMBO icash】2018網購/超商/icash/繳費5%神卡!

【7-ELEVEN】國泰/玉山卡消費繳費滿額活動!(2018/11/07~)

【台新@GoGo】一般消費1.5%網購3.5%!行動支付/保費同享優惠密技!