您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux怎么自動清理N天前目錄文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux怎么自動清理N天前目錄文件”吧!
服務器每周會產生一次全局備份文件,大小約100G左右,需要定期清理。
工作時間網站訪問大,服務器I/O高的時候刪除大數據會對服務器狀態產生不好的影響。于是想利用計劃任務自動執行。
在我的備份目錄/bakcup下,每次備份文件均以日期形式命名目錄名:
# ls 2013-12-23 2014-01-06 2014-01-20 2014-02-03 2013-12-30 2014-01-13 2014-01-27 2014-02-10
刪除部分備份同時保留部分,可以使用find命令,如我要保留最近四周備份的文件,每次備份間隔七天:
# find /bakcup/ -maxdepth 1 -type d -mtime +28 /bakcup/2014-01-06 /bakcup/2014-01-13 /bakcup/2013-12-23 /bakcup/2013-12-30
-maxdepth 1:設置查找目錄深度為1,只在/backup目錄下查找,如不加此參數會將下級目錄中的文件都列出
-type d:設置查找類型為目錄
-mtime +28:查找28天前的目錄
查找結束后可用-exec參數連接刪除命令
rsync --delete-before -d /data/test/ {} \;
此處沒有使用rm,原因是rsync在刪除大量文件時比rm更具優勢,具體原因請參考《為什么rsync能夠快速刪除400000文件?》。
所以,整個命令就是:
# find /bakcup/ -maxdepth 1 -type d -mtime +28 -exec rsync --delete-before -d /data/test/ {} \;
***可以把命令放入腳本,設置crontab自動執行。
提醒:
使用命令前,應先在服務器上試用查找部分的命令,如只查找出要清理的目錄,則可以繼續。
不排除某些系統會將./目錄查找出來,一定要看清楚,防止出現意外情況。
另外可將-exec替換為-ok,效果相同,在刪除前提醒用戶確認。
到此,相信大家對“Linux怎么自動清理N天前目錄文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。