Integrity check Rake task
Integrity check Rake task
GitLab 提供了 Rake 任务来检查各种组件的完整性.
尽管 Git 非常灵活,并试图防止数据完整性问题,但有时还是会出错. 以下 Rake 任务旨在帮助 GitLab 管理员诊断问题存储库,以便对其进行修复.
需要检查 3 件事以确定完整性.
- Git 存储库文件系统检查( ). 此步骤验证存储库中对象的连接性和有效性.
- 检查
refs/heads
是否有任何分支/引用锁定文件.
重要的是要注意,仅存在config.lock
或引用锁并不一定表示问题. 当 Git 和 GitLab 在存储库上执行操作时,会定期创建和删除锁定文件. 它们用于防止数据完整性问题. 但是,如果 Git 操作被中断,则这些锁可能无法正确清理.
- 尝试推送代码时收到错误-
remote: error: cannot lock ref
- 查看 GitLab 仪表板或访问特定项目时出现 500 错误.
此任务循环遍历 GitLab 服务器上的所有存储库,并运行前面所述的完整性检查.
全部安装
源安装
sudo -u git -H bundle exec rake gitlab:git:fsck RAILS_ENV=production
用户可以将各种类型的文件上传到 GitLab 安装. 这些完整性检查可以检测丢失的文件. 此外,对于本地存储的文件,会在上载时生成校验和并将其存储在数据库中,这些校验将针对当前文件进行校验.
- CI 工件(从版本 10.7.0 起可用)
- LFS 对象(从版本 10.6.0 起可用)
- 用户上传(从版本 10.6.0 起可用)
全部安装
Source Installation
sudo -u git -H bundle exec rake gitlab:artifacts:check RAILS_ENV=production
sudo -u git -H bundle exec rake gitlab:lfs:check RAILS_ENV=production
这些任务还接受一些环境变量,可用于覆盖某些值:
输出示例:
Checking integrity of Uploads
- 1..1350: Failures: 0
- 2745..4349: Failures: 2
- 4357..5762: Failures: 1
- 5764..7140: Failures: 2
- 7142..8651: Failures: 0
- 8653..10134: Failures: 0
- 10135..11773: Failures: 0
- 11777..13315: Failures: 0
LDAP 检查 Rake 任务将测试绑定 DN 和密码凭据(如果已配置),并将列出 LDAP 用户的样本. 此任务也作为gitlab:check
任务的一部分执行,但可以独立运行. 有关详细信息,请参见LDAP Rake 任务-LDAP 检查 .