InfoGrab Docs

무결성 검사 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를 가지고 두 저