linux下每天都在產生LOG日志文件,如果不定期刪除,遲早擠爆硬盤,如果手動刪除,幾次可以,不是長久之計。這些事交給Linux系統就可以解決。
試驗環境:
系統:CentOS 6.5 x64
測試路徑、測試文件名、測試時間(2017-06-05)
執行命令:
1 | #?find?/root/Text?-mtime?+3?-name?"log.*"?-exec?rm?-f?{}?\; |
命令解釋:
find ????查找命令
/root/Text? 查找路徑
-mtime ? ? 文件最后修改時間
+3????? 3天前(或理解成從命令執行當前日期開始,當天不算,保留3個文件)
-name????查詢方式為查詢文件名
"log.*"? ? 查找log開頭后面為任意長度字符的文件(不明白可以找“正則表達式”教程看看)
-exec?? ? 固定寫法
rm -f????符合條件的執行刪除并不提示
{}????? 固定寫法,注意左右有空格
\;????? 固定寫法,注意左右有空格
-mtime說明一下,Linux中的文件的時間屬性只有三個:
atime(Access time)????文件最后訪問時間。
mtime(Modified time)? ? 文件最后修改時間。
ctime(Change time)????文件最后修改權限時間。(比如執行過chmod)
用stat命令來看看文件詳細信息,find會找到文件的Modified時間作為參數。
1 | #?stat?log.2017-06-01 |
有人注意到,文件名是06-01,但是顯示時間是06-05,怎么回事。因為可以用"touch -d"命令來修改Modified,現在將文件修改回原來日期06-01。
1 2 3 | #?touch?-d?"21:55?06/01/2017"?log.2017-06-01 或 #?touch?-d?06/01/2017?log.2017-06-01 |
上面命令第一個是時間和日期都修改,下面那個是只修改日期。
另外也可以單獨修改時間或者月份,如下
以使用 am, pm 或是 24 小時的格式,日期可以使用其他格式如 6 May 2000 。?
1 2 3 | touch ?-d? "6:03pm" ?file ?touch ?-d? "05/06/2000" ?file ?touch ?-d? "6:03pm?05/06/2000" ?file |
1 2 3 | touch ?-d? "2017-05-31?08:10:30" ?test .doc????同時修改文件的修改時間和訪問時間 touch ?-m?-d? "2017-05-31?08:10:30" ?test .doc???只修改文件的修改時間 touch ?-a?-d? "2017-05-31?08:10:30" ?test .doc???只修改文件的訪問時間 |
上面find命令,寫好了我們加入系統自動執行。命令:
1 | #?crontab?-e |
打開后和操作vi編輯軟件一樣(因為crontab默認就是用vi來編輯的)
1 | #?crontab?-l |
列出內容,定義凌晨2點執行。
參考文章:
http://blog.csdn.net/maqingli20/article/details/7195408
https://zhidao.baidu.com/question/342860050.html
http://www.linuxidc.com/Linux/2015-11/124813.htm
http://www.2cto.com/os/201203/122934.html
本文轉自 piazini 51CTO博客,原文鏈接:http://blog.51cto.com/wutou/1932446