본문 바로가기
Linux

Jenkins 오래된 Job 빌드 히스토리 제거

by Playdev 2023. 4. 25.
728x90

호스팅 중인 가상서버의 용량이 부족하여 정리할 수 있는 부분들을 찾게 되었다.

 

그 중 Jenkins 의 Build History 가 꽤나 쌓여 있는 것을 볼 수 있었는데,

Jenkins 를 cronjob 형태로 몇 년간 사용하다보니 꽤나 많은 데이터가 쌓여 있는 것을 볼 수 있었다.

 

Job 당 약 30만개 이상의 빌드히스토리가 있었고, 히스토리당 수백Kb 의 로그가 남아있었다. (찾았다...)

 

한 번에 정리할 방법을 찾던 중, 아래와 같이 젠킨스 내에서 스크립트를 통해 일괄 정리가 가능하여 기록을 해두려 한다.

 

 

# 스크립트 콘솔로 이동

- Jenkins -> Jenkins 관리 -> Script Console 로 이동한다.

스크립트 콘솔

# 상황에 맞는 스크립트 활용

- 전체 또는 특정 아이템 의 빌드 히스토리를 제거하도록 스크립트를 복사하여 실행한다.

모든 아이템의 빌드 히스토리 제거

item = Jenkins.instance.getAllItems().each() { item ->
  item.builds.each() { build ->
    build.delete()
  }
  item.updateNextBuildNumber(1) 
}

특정 아이템의 빌드 히스토리 제거

item = Jenkins.instance.getItemByFullName("jobname")
item.builds.each() { build ->
  build.delete()
}
item.updateNextBuildNumber(1)

 

# 결과

모든 아이템의 빌드 히스토리를 제거하고 보니 아래와 같이 용량을 대폭 (!!!) 확보할 수 있었다.

약 1시간 20분이 소요 되었고, 약 73G 가 젠킨스 빌드 로그 였다 ...

젠킨스 용량 정리 전
젠킨스 용량 정리 후

 

향후 2-3년은 걱정 없을 거 같다!

728x90

'Linux' 카테고리의 다른 글

Docker 권한 문제 해결 하기  (0) 2023.06.12