무결성 검사 Rake 작업
GitLab 저장소, 업로드 파일, 데이터베이스 값의 무결성을 검사하는 Rake 작업을 설명합니다.
GitLab은 다양한 구성 요소의 무결성을 확인하기 위한 Rake 작업을 제공합니다. GitLab 구성 확인 Rake 작업 도 참조하세요. 저장소 무결성 # Git은 매우 견고하고 데이터 무결성 문제를 방지하려고 하지만, 때로는 문제가 발생할 수 있습니다. 다음 Rake 작업은 GitLab 관리자가 문제 저장소를 진단하여 수정할 수 있도록 도움을 줍니다. 이러한 Rake 작업은 Git 저장소의 무결성을 확인하기 위해 세 가지 방법을 사용합니다. Git 저장소 파일 시스템 검사( git fsck ). 이 단계는 저장소에서 객체의 연결성과 유효성을 확인합니다. 저장소 디렉토리에서 config.lock 확인. refs/heads 에서 브랜치/참조 잠금 파일 확인. config.lock 또는 참조 잠금의 존재만으로는 반드시 문제가 있다는 의미가 아닙니다. 잠금 파일은 Git과 GitLab이 저장소에서 작업을 수행할 때 일상적으로 생성되고 제거됩니다. 데이터 무결성 문제를 방지하기 위한 것입니다. 그러나 Git 작업이 중단되면 이러한 잠금이 제대로 정리되지 않을 수 있습니다. 다음 증상은 저장소 무결성 문제를 나타낼 수 있습니다. 사용자가 이러한 증상을 경험하면 아래에 설명된 Rake 작업을 사용하여 문제를 일으키는 저장소를 정확히 파악할 수 있습니다. 코드를 push하려고 할 때 오류 수신 - remote: error: cannot lock ref GitLab 대시보드를 보거나 특정 프로젝트에 액세스할 때 500 오류. 모든 프로젝트 코드 저장소 확인 # 이 작업은 프로젝트 코드 저장소를 순환하여 앞서 설명된 무결성 검사를 실행합니다. 프로젝트가 풀 저장소를 사용하는 경우 해당 저장소도 확인합니다. 다른 유형의 Git 저장소는 확인되지 않습니다 . 프로젝트 코드 저장소를 확인하려면: Linux package (Omnibus) Self-compiled (source) sudo gitlab-rake gitlab:git:fsck sudo -u git -H bundle exec rake gitlab:git:fsck RAILS_ENV=production 특정 프로젝트 코드 저장소 확인 # 히스토리 GitLab 18.3에서 도입됨 . PROJECT_IDS 환경 변수를 프로젝트 ID의 쉼표로 구분된 목록으로 설정하여 특정 프로젝트 ID를 가진 프로젝트의 저장소에 대한 검사를 제한합니다. 예를 들어, 프로젝트 ID가 1 과 3 인 프로젝트의 저장소를 확인하려면: Linux package (Omnibus) Self-compiled (source) sudo PROJECT_IDS="1,3" gitlab-rake gitlab:git:fsck sudo -u git -H PROJECT_IDS="1,3" bundle exec rake gitlab:git:fsck RAILS_ENV=production 저장소 ref의 체크섬 # 하나의 Git 저장소를 다른 저장소와 비교하려면 각 저장소의 모든 ref의 체크섬을 계산할 수 있습니다. 두 저장소가 동일한 ref를 가지고 두 저
