Linux-- 로그 내용과 삭제 로그 파일을 지우려면 시간이 초과되었습니다

 

머리말

성능 테스트를 수행하는 최근의 압력, 그것은 압력 후속가 느린 더의 결과로, 로그를 많이 생성, 문제는 결국 같은 디스크 공간과을 입력합니다. 항상 수동으로 이러한 문제를 방지하기 위해 로그 파일을 삭제하려면, 리눅스 정기적으로 로그인 스크립트를 정리 쓰기, 한 번 모두를 위해.

 

 

1, 쉘 스크립트

  • 스크립트 및 권한 부여를 만들기
/home/mppay/auto-truncate-log.sh 터치 
chmod를가 U + X auto-truncate-log.sh

 

  • 스크립트 편집
우리는 auto-truncate-log.sh

로그 파일 []의 내용을 비우고 다음과 같이 스크립트를 :

#! / 빈 / SH
# 여러 경로를 입력 할 수 있습니다
WORKDIR는 = ( " /home/mppay/apache-tomcat-7.0.73/logs "  " / 홈 / mppay / 로그 " )
 에 대한 WDIR 에서 , $ {는 WORKDIR는 [@]} 
  에코 -e " WDIR는 $ {}를 파일 경로 " 
  . # .LOG 로그 파일과 .txt 인 파일 카탈리나뿐만 아니라, 마커를 포함 OUT의 파일
   찾기 $ WDIR -regex"^ * \ (\ 로그인 \ |. * \ TXT \ 로그인 | .. catalina.out을 \). $ " F -print 간부 TRUNCATE -s 형 {0} \;
   IF [$ -eq? 0 ] 그때
    에코는 `date` -e " 잘라 내기 로그가 성공적으로 \ n! " 
  다른 
    에코 -e`date` " 잘라 내기 로그는 실패! \ n "
  있다
끝난

 [] 로그 파일 삭제 다음과 같이 스크립트입니다 :

#! / 빈 / SH
# 여러 경로를 입력 할 수 있습니다
WORKDIR는 = ( " /home/mppay/apache-tomcat-7.0.73/logs "  " / 홈 / mppay / 로그 " )
 에 대한 WDIR 에서 , $ {는 WORKDIR는 [@]} 
  에코 -e " WDIR는 $ {}를 파일 경로 " 
  . # .LOG 로그 파일과 .txt 인 파일 카탈리나뿐만 아니라, 마커를 포함 OUT의 파일
   찾기 $ WDIR -regex"^ * \ (\ 로그인 \ |. * \ TXT \ 로그인 | .. catalina.out을 \). $ " F 형 간부 +5 -mtime -and RM -rf {} \; IF [$ -eq? 0 ] 그때
    에코 -e`date` " 삭제 로그가 성공적으로! \ n " 
  다른 
    에코 -e`date`는 " 삭제 로그! 실패 \ n "
  있다
끝난

 

  • 명령 설명 :
# 클리어 파일 내용, 경로 -name "파일 이름"타입 F - 인쇄 - 간부 잘라 내기 -s 0 {} \ 찾기
경로 -mtime + F -name 일 - 형 찾을 수 있습니다 " 파일 이름 " # 파일 삭제, 간부 인 RM -rf를 {}
찾기 : 찾기 명령 리눅스 사용자는 기준에 지정된 파일을 찾을 수
-regex을 :이 매개 변수는 입력 나중에 쓰기로 정규 표현식을 사용 나타냅니다. 이 경우 -심볼 이름은 나중에 문자열 총장을 작성하는 데 사용되는 와일드 카드는이 시간에 사용할 수 있지만, 정규 상관 관계가 유지됩니다.
     쉘 정규가 :
^문자열의 정기적 시작, 문자열의 정규 끝을 $, 알파벳 이외의 문자와 일정한 사용의 필요성의 숫자가 탈출하는 단계; 수단은 문자와 일치; 나타납니다이 필요하다고 파일 경로 그래서. 탈출했다.
- 그리고는 : 다시 그렇게에서 동일한 명령 매개 변수를 사용하여 나타냅니다 -에 mtime을,
-mtime : 표시 뒤에 +, 시간 특성을 수정(7), 즉 7 일 이상, 만족 7 일 이상 파일이나 폴더에 수정; 와 -7, 덜 충족하기 위해 칠일 이상의 대표7단지 칠일이 나타내는;
- 유형 : F 다음에 조회 파일 속성, 파일을 찾을 표시, d는 폴더에 대한 검색을 나타냅니다;
- 인쇄 : 인쇄 파일 부합 함을 선언합니다;
간부 : 이는 다음 명령이 일치하는 파일 또는 폴더의이면의 전면에 실행되는 것을 나타낸다. 명령이 뒤 아이 {}의 쌍을 필요로합니다, 공백과 세미콜론의 마지막 끝;

 

 

2 crontab에서 예정된 작업

auto-truncate-log.sh 자동 실행을 예약 시스템 예약 된 작업에 추가 된 스크립트를 실행합니다 :

의 crontab -e

입력 :

* / 1 * * * /home/mppay/auto-truncate-log.sh >> /home/mppay/auto-truncate-log.log

정리 작업 auto-truncate-log.sh 로그 파일을 수행 로그 출력을 지정하기 위해 여기에 모든 시간을 설정합니다.

결과 :

추천

출처www.cnblogs.com/caoweixiong/p/12165915.html