欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux如何定時(shí)清空日志內(nèi)容和刪除日志文件

 更新時(shí)間:2023年12月12日 16:08:11   作者:wd520521  
這篇文章主要介紹了Linux如何定時(shí)清空日志內(nèi)容和刪除日志文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、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)文章

最新評(píng)論