nohup.out은 리눅스 너무 큰 문제 로그에 대한

실행 JAVA 프로그램이 배경 부트 로그를 달성하기 위해 명령을 nohup을 사용해야하는 경우에 노출 nohup.out은 배경, 자바 프로젝트는 보통 기본값은 현재 디렉토리에 파일을 저장합니다. 그러나 일부 프로그램 nohup을 출력 파일이 너무 큰 것입니다.

이 솔루션에서 다음과 같이 :

1, 디렉토리 nohup.out은 스크립트 ClearNohup.sh을 만들 시간에 정기적으로 매주 정리 작업을 통해 그것을 할 수 있습니다. nohup을 파일 문제를 방지하기 위해 너무 큽니다.

#! / 빈 / bash는 
# 저자 : Ljohn 
# 최신 업데이트 : 2018년 2월 24일 
# 설명은 : 분할 로그인 nohup.out은 

(`dirname은 $ CD this_path = $를 # PWD 0 ')이 스크립트 경로에 따라 
CURRENT_DATE =`날짜 -d "- 일일 ''+ %의 Y %의 m % d에 " '#의 시간 나열된 
CD $으로 this_path 
$ this_path 에코 
에코 $의 CURRENT_DATE의   

do_split () { 
    [를! -d 로그] && MKDIR -p 로그 
    스플릿. 4 -a -b -d 10m ./nohup.out ./logs/nohup-${current_date} # 1,000 만 각 슬라이스 로그 형식을 파일로 다음 nohup을-XXXXXXXXXX 
    IF하며 다음 [-eq $을 0] 
        에코 "분할이 완료!" 
    다른 사람 
        의 "입니다! 실패 분할"에코 
        종료합니다. 1 
    인터넷 
} 

do_del_log () {  
    찾습니다./ 로그 타입 F의 -ctime +7 | xargs를 RF RM은 # 생성 된 로그를 정리 7 일 전
    CAT을 / dev / null> 취소 nohup.out은 현재 디렉토리 번호의 nohup을.밖으로 파일
} 

do_split 경우는 다음 
    do_del_log 
    에코 "nohup을이 성공 분할" 
다른 
    에코는 "nohup을 분할 실패" 
    2 번 출구 
Fi를

2, 정기적으로 작업을 추가

 의 crontab -e

 0 1 * * * / 1 /server/scripts/clearNohup.sh &>을 / dev / null # 예약 된 작업 추가 : 주 시간 1시의 첫날을 수행하는

참고 :

 1, nohup을 명령 인터프리터 :

  A, 구문 : nohup을 [명령 [인수] [b]

  B, 설명 : Command 매개 변수 및 명령의 기타 관련 Arg 매개 변수에 의해 지정된 nohup을 명령 실행은, 모든 끊지 신호를 무시합니다. 이 프로그램은 로그 아웃 한 후 명령을 nohup을 사용하여 백그라운드에서 실행됩니다. 당신이 리디렉션을 지정하지 않은 경우, 명령의 끝에 (표현 "및"기호) 추가, nohup을 명령에 대한 배경을 실행하려면, 현재 디렉토리에 nohup.out은에서 로그 파일에 기본 출력은 일반으로 제출 : nohup을 ./ execute.sh 및 같은 로그 또는 출력 현재 운영 헤드는 리디렉션 .nohup.out : nohup을 ./execute.sh> /home/xxx/log.log 2> & 1 : 지정된 디렉토리로 리디렉션이 로그 

 2 분할에는 여러 개의 작은 파일들로 분할 될 수있는 큰 파일이 파일은 로그 생성 가독성을 향상시키는 작은 세그먼트로 분할 될 필요가있다 명령한다. 

옵션 

-b : 바이트 단위의 각 출력 파일 크기 값. 

-C 각 출력 프로파일, 단일 행의 최대 바이트 수. 

-d : 접미사로 번호입니다. -A 길이는 접미사 길이를 지정하는 데 사용할 수 있습니다 :

-l 각 프로파일 크기 열 출력값.

예를 들면 :

100K는 파일을 생성 한 후 분할 분할 (형식 datafile201703230000)를 사용합니다.

# dd if=/dev/zero bs=100k count=1 of=date.file
# split -b 10k -d -a 4 ./date.file   ./logs/nohup$(date +\%Y\%m\%d)log
# cd logs/ ;ls
nohup20170323log0002  nohup20170323log0006  
nohup20170323log0003  nohup20170323log0007  
nohup20170323log0000  nohup20170323log0004 
nohup20170323log0001  nohup20170323log0005

추천

출처www.cnblogs.com/zhangmingcheng/p/11577967.html