Linux如何定時(shí)清空日志內(nèi)容和刪除日志文件
一、shell腳本
1、創(chuàng)建腳本并賦權(quán)
touch /home/mppay/auto-truncate-log.sh chmod u+x auto-truncate-log.sh
2、編輯腳本
vi auto-truncate-log.sh
(1)【清空日志文件內(nèi)容】腳本如下:
#!/bin/sh #可填寫(xiě)多個(gè)路徑 workdir=("/home/mppay/apache-tomcat-7.0.73/logs" "/home/mppay/logs") for wdir in ${workdir[@]}; do echo -e "filepath is ${wdir}" # .log 文件和包含 log 標(biāo)記的 .txt文件,以及 catalina.out 文件 find $wdir -regex "^.*\(\.log\|log.*\.txt\|catalina.out\)$" -type f -print -exec truncate -s 0 {} \; if [ $? -eq 0 ]; then echo -e `date`" truncate logs successfully! \n" else echo -e `date`" truncate logs failed! \n" fi done
(2)【刪除日志文件】腳本如下:
#!/bin/sh #可填寫(xiě)多個(gè)路徑 workdir=("/home/mppay/apache-tomcat-7.0.73/logs" "/home/mppay/logs") for wdir in ${workdir[@]}; do echo -e "filepath is ${wdir}" # .log 文件和包含 log 標(biāo)記的 .txt文件,以及 catalina.out 文件 find $wdir -regex "^.*\(\.log\|log.*\.txt\|catalina.out\)$" -and -mtime +5 -type f -exec rm -rf {} \; if [ $? -eq 0 ]; then echo -e `date`" delete logs successfully! \n" else echo -e `date`" delete logs failed! \n" fi
3、命令說(shuō)明
find 路徑 -name "文件名" -type f -print -exec truncate -s 0 {} \; #清空文件內(nèi)容
find 路徑 -mtime +天數(shù) -type f -name "文件名" -exec rm -rf {} ; #刪除文件
find
:Linux查找命令,用戶查找指定條件的文件-regex
:此參數(shù)表示后面的輸入使用正則表達(dá)式進(jìn)行書(shū)寫(xiě)。若為 -name 則后面使用一般字符串書(shū)寫(xiě),此時(shí)可以使用通配符,但正則相關(guān)的符號(hào)將會(huì)被保留?! ?nbsp;shell正則
:^ 表示正則匹配字符串開(kāi)頭,$ 表示正則匹配字符串的結(jié)尾,其他一些和正則使用的非字母的符號(hào)需要進(jìn)行轉(zhuǎn)義;. 表示匹配任意字符;所以文件路徑中出現(xiàn)的 . 需要進(jìn)行轉(zhuǎn)義。-and
:表示再次同等使用命令的相關(guān)參數(shù),如此處的 -mtime ;-mtime
:表示使用修改時(shí)間屬性,后面的 +7 表示滿足超過(guò)7天,即修改時(shí)間在7天以上的文件或文件夾;而 -7 表示滿足不足7天, 7 表示剛好7天;-type
:表示查找的文件屬性,后面 f 表示查找文件,而 d 表示查找文件夾;-print
:將符合的文件打印出來(lái);-exec
:表示后面要對(duì)前面匹配的文件或文件夾執(zhí)行后面的命令。注意后面的命令需要一對(duì)兒{},一個(gè)空格和一個(gè),最后是一個(gè)分號(hào)來(lái)結(jié)束;
二、crontab計(jì)劃任務(wù)
crontab -e
輸入:
* */1 * * * /home/mppay/auto-truncate-log.sh >> /home/mppay/auto-truncate-log.log
這里設(shè)置每隔1小時(shí)執(zhí)行auto-truncate-log.sh文件進(jìn)行日志清理任務(wù),同時(shí)指定的日志輸出。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下查看CPU型號(hào),內(nèi)存大小,硬盤(pán)空間的命令(詳解)
下面小編就為大家?guī)?lái)一篇Linux下查看CPU型號(hào),內(nèi)存大小,硬盤(pán)空間的命令(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11Linux下tar解壓錯(cuò)誤:文件損壞與不完整問(wèn)題的解決方案
在日常的 Linux 系統(tǒng)管理中,我們經(jīng)常需要使用 tar 命令來(lái)壓縮和解壓文件,然而,有時(shí)在解壓過(guò)程中會(huì)遇到諸如“文件損壞”或“意外結(jié)束”等錯(cuò)誤提示,本文將詳細(xì)分析這些問(wèn)題的原因,并提供一套完整的解決方案,需要的朋友可以參考下2025-02-02PHP程序員玩轉(zhuǎn)Linux系列 備份還原MySQL
這篇文章主要為大家詳細(xì)介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,MySQL備份還原教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Linux在服務(wù)器多節(jié)點(diǎn)下面實(shí)現(xiàn)快速查找日志
在多節(jié)點(diǎn)分布式系統(tǒng)中,通過(guò)使用find和grep命令組合,可以實(shí)現(xiàn)高效的日志搜索,先定位到具體日期的文件夾,再執(zhí)行命令全面掃描各個(gè)服務(wù)器節(jié)點(diǎn)下的日志文件,從而簡(jiǎn)化日志查詢過(guò)程2024-11-11Centos 7開(kāi)啟網(wǎng)卡自動(dòng)獲取IP的詳細(xì)方法
本篇文章主要介紹了Centos 7開(kāi)啟網(wǎng)卡自動(dòng)獲取IP的詳細(xì)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02Linux防火墻設(shè)置允許特定IP訪問(wèn)指定端口
文章介紹了服務(wù)器安全設(shè)置,包括啟用防火墻、檢查端口、關(guān)閉端口訪問(wèn)、添加特定IP訪問(wèn)特定端口的方法步驟,以及注意事項(xiàng)2025-04-04linux如何通過(guò)防火墻iptables做隔離端口的腳本
這篇文章主要介紹了linux如何通過(guò)防火墻iptables做隔離端口的腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06