1. 程式人生 > >linux刪除之前的文件日誌

linux刪除之前的文件日誌

自動刪除舊log

linux下每天都在產生LOG日誌文件,如果不定期刪除,遲早擠爆硬盤,如果手動刪除,幾次可以,不是長久之計。這些事交給Linux系統就可以解決。

試驗環境:

系統:CentOS 6.5 x64

測試路徑、測試文件名、測試時間(2017-06-05)

技術分享


執行命令:

# 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時間作為參數。

# stat log.2017-06-01

技術分享

有人註意到,文件名是06-01,但是顯示時間是06-05,怎麽回事。因為可以用"touch -d"命令來修改Modified,現在將文件修改回原來日期06-01。

# 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 。

touch -d "6:03pm" file 
touch -d "05/06/2000" file 
touch -d "6:03pm 05/06/2000" file


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命令,寫好了我們加入系統自動執行。命令:

# crontab -e

打開後和操作vi編輯軟件一樣(因為crontab默認就是用vi來編輯的)

技術分享

# 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




本文出自 “悟透的雜貨鋪” 博客,請務必保留此出處http://wutou.blog.51cto.com/615096/1932446

linux刪除之前的文件日誌