Jenkins 작업 영역을 정리하는 방법이 있습니까?
Jenkins에서 작업 공간을 어떻게 정리할 수 있습니까? AccuRev
버전 관리 도구로 사용 하고 있습니다.
freestyle
Jenkins에서 프로젝트를 만들었습니다 .
Jenkins에서 작업 공간을 정리하는 방법이 있습니다. 빌드 전 또는 빌드 후에 작업 공간을 정리할 수 있습니다.
먼저 Workspace Cleanup Plugin을 설치 합니다.
빌드 전에 작업 공간을 정리하려면 빌드 환경에서 빌드 시작 전에 작업 공간 삭제 상자를 선택하십시오 .
빌드 후 작업 공간을 정리하려면 : 제목 아래 빌드 후 작업이 선택한 빌드가 완료되면 삭제 작업 공간 으로부터 빌드 후 작업이 추가 메뉴 아래로 놓습니다.
수동으로 정리하고 싶다면, 내 버전의 jenkins (추가 플러그인이 필요한 것 같지는 않았지만 알고있는 사람)을 사용하면 왼쪽 열에 "작업 공간"링크가 있습니다. 프로젝트를 클릭하십시오. 그런 다음 "작업 공간"에서 "현재 작업 공간 지우기"링크가 왼쪽 열의 그 아래에 나타납니다.
위의 솔루션 외에도 더 "일반적인"방법이 있습니다. Linux 시스템에서 가장 큰 공간 소비자를 직접 삭제합니다. 다음 단계를 따를 수 있습니다.
ls -lart를 사용하여 숨겨진 폴더도 나열하면 일반적으로 jenkin 설치는 .jenkins / 폴더에 있습니다.
[xxxxx ~]$ ls -lart drwxrwxr-x 12 xxxx 4096 Feb 8 02:08 .jenkins/
- 폴더 공간 나열
Use df -h
높은 수준의 디스크 공간 표시
du -sh ./*/
현재 경로의 각 하위 폴더에 대한 총 메모리를 나열합니다.
du -a /etc/ | sort -n -r | head -n 10
/ etc /에서 디스크 공간을 차지하는 상위 10 개 디렉토리를 나열합니다.
- 이전 빌드 또는 기타 대용량 폴더 삭제
일반적으로 ./job/ 폴더 또는 ./workspace/ 폴더가 가장 큰 폴더가 될 수 있습니다. 들어가서 필요에 따라 기본을 삭제하십시오 (전체 폴더를 삭제하지 마십시오).
rm -rf theFolderToDelete
Jenkins 파일에서 추가
cleanWs()
빌드가 완료된 후 작업 공간이 삭제됩니다.
한 번에 모든 작업의 작업 공간을 삭제하기 위해 Jenkins 관리 → 스크립트 콘솔 에서 아래 스크립트를 실행할 수 있습니다 . 파일 시스템의 공간을 정리하기 위해 이렇게했습니다.
import hudson.model.*
// For each project
for(item in Hudson.instance.items) {
// check that job is not building
if(!item.isBuilding()) {
println("Wiping out workspace of job "+item.name)
item.doDoWipeOutWorkspace()
}
else {
println("Skipping job "+item.name+", currently building")
}
}
중요 : 작업이 현재 실행되고 있지 않은 한 주어진 Jenkins 작업에 대한 작업 공간을 제거하는 것이 안전합니다!
참고 : 귀하의 $JENKINS_HOME
가 기본값으로 설정되어 있다고 가정합니다 /var/jenkins_home
.
하나의 작업 공간 정리
rm -rf /var/jenkins_home/workspaces/<workspace>
모든 작업 공간 정리
rm -rf /var/jenkins_home/workspaces/*
몇 가지 예외를 제외하고 모든 작업 공간 정리
이것은 grep을 사용하여 화이트리스트를 만듭니다.
ls /var/jenkins_home/workspace \
| grep -v -E '(job-to-skip|another-job-to-skip)$' \
| xargs -I {} rm -rf /var/jenkins_home/workspace/{}
가장 큰 작업 공간 10 개 정리
이것은 du와 sort를 사용하여 가장 큰 것에서 가장 작은 순서로 작업 공간을 나열합니다. 그런 다음 head를 사용하여 처음 10 개를 가져옵니다.
du -d 1 /var/jenkins_home/workspace \
| sort -n -r \
| head -n 10 \
| xargs -I {} rm -rf /var/jenkins_home/workspace/{}
위에서 언급 한 옵션이 나타나기 전에이 플러그인을 설치해야합니다.
이 플러그인은 모든 작업 구성에 확인란을 추가하여 모든 단계 (소스 제어 포함)가 실행되기 전에 전체 작업 공간을 삭제할 수 있습니다.
이것은 빌드가 실행되는 방식을 보장하기 위해 항상 알려진 지점에서 시작하도록하는 데 유용합니다.
따라서 댓글을 달 수 없습니다.
Upen 의 대답은 잘 작동하지만 Jenkins Pipeline Jobs와 Freestyle Jobs가 혼합 된 경우에는 그렇지 않습니다. 파이프 라인 작업에는 DoWipeWorkspace와 같은 메소드가 없습니다. 그래서 그것을 건너 뛰기 위해 스크립트를 수정했습니다.
import hudson.model.*
import org.jenkinsci.plugins.workflow.job.WorkflowJob
// For each project
for(item in Hudson.instance.items) {
// check that job is not building
if(!item.isBuilding() && !(item instanceof WorkflowJob))
{
println("Wiping out workspace of job "+item.name)
item.doDoWipeOutWorkspace()
}
else {
println("Skipping job "+item.name+", currently building")
}
}
필요한 경우 작업 이름으로 필터링 할 수도 있습니다. item.getDisplayName().toLowerCase().contains("release")
질문이 현재 작업의 작업 공간 정리에 관한 것이라고 가정하면 다음을 실행할 수 있습니다.
test -n "$WORKSPACE" && rm -rf $WORKSPACE/*
참고 URL : https://stackoverflow.com/questions/28683914/is-there-any-way-to-cleanup-jenkins-workspace
'IT TIP' 카테고리의 다른 글
사전을 사용하여 matplotlib를 사용하여 막대 플로팅 (0) | 2020.10.20 |
---|---|
Docker-이미지에서 호스트로 파일을 복사하려면 어떻게해야합니까? (0) | 2020.10.20 |
C # : 전체 데스크톱 크기를 얻으시겠습니까? (0) | 2020.10.20 |
기본 Java 설치의 cacerts 위치를 얻는 방법은 무엇입니까? (0) | 2020.10.20 |
Swagger API 문서에서 PDF 생성 (0) | 2020.10.19 |