상용 배치를 Jenkins로 운영하다보니 상용 배치 서버의 File Storage가 너무 빨리 줄어드는 점이 이상해서 파악 및 조치를 했다.
배치 어플리케이션에서 쌓이는 로그 외에도 아래 경로에 각 배치(Job)별로 Console 로그가 또 쌓이고 있더라...
버튼 클릭으로 로그 삭제
버튼 클릭으로 로그를 지우려면 Delete log 플러그인을 설치한다.
/var/lib/jenkins/jobs
Groovy Script로 자동 로그 삭제
아래 Post를 참고함
https://blog.clairvoyantsoft.com/jenkins-cleanup-workspace-reduce-disk-usage-18310097d3ef
1. Jenkins 관리 > Plugin 설치 > Groovy postbuild
2. Jenkins > Item 추가
3. 빌드 유발 > Build periodically
주기 셋팅
4. 빌드 후 조치 추가 > Groovy Postbuild
5. Groovy script 영역에 아래 스크립트 추가
maxlogdays는 로그를 보관할 기간(일) 입니다.
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
int maxlogdays = 7
manager.listener.logger.println maxlogdays +"일 이상 경과된 로그 삭제"
for (job in Jenkins.instance.items)
{
int count = 0
job.getBuilds().byTimestamp(1, System.currentTimeMillis() - (1000L * 60 * 60 * 24 * maxlogdays)).each
{
manager.listener.logger.println it.getLogFile().toString() + "is deleted."
it.delete() //빌드 기록 자체를 삭제
//it.getLogFile().delete() //로그 파일만 삭제
//it.getLogFile().createNewFile() //로그 파일 0으로 생성
}
}
Jenkins core API는 아래 링크에서 찾아보실 수 있습니다.
Jenkins로그뿐 아니라 어플리케이션 로그도 삭제하지 않으면 파일 스토리지 사용량을 모두 잡아내지 못함
어플리케이션 로그 삭제는 아래 링크 참고
'프로그래밍 > Jenkins' 카테고리의 다른 글
Jenkins Unix(Linux) 계정을 사용한 인증 - 내부회계감사 비밀번호 관리 규칙 대응 (0) | 2020.12.04 |
---|---|
로그 보관(삭제 주기) 스크립트 (0) | 2020.03.30 |
Accessing OS environment variables in Jenkins (0) | 2019.08.30 |
Jenkins service account user 변경 (0) | 2019.08.30 |
[Jenkins] shell 명령어 실행을 위한 관리자 권한 부여 (0) | 2019.08.20 |