最近公司gitlab服务器因为误删文件导致系统起不来,幸好之前有做备份脚本,得以恢复
gitlab恢复和安装的必须是同一个版本,否则不能恢复
技术博客 http://idea.coderyj.com/
*.gitlab_backup.tar 是备份文件,前面的 12.0.9是版本号,要想恢复必须下载这个版本 下载链接 https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=12.0.9&filter=all&dist=
gitlab.rb 是配置文件,包括端口ip等等, gitlab-secrets.json 是数据库加密的秘钥,恢复数据库就靠它了
下载的时候记得要下载匹配你系统的版本
sudo dpkg -i gitlab-ce_12.0.9-ce.0_amd64.deb
漫长等待 中间会询问 输入 yes就OK了
vim /etc/gitlab/gitlab.rb
# 改成你服务器的外网地址 ip:port
external_url 'http://gitlab.example.com'
gitlab-ctl reconfigure
gitlab-ctl start
sudo gitlab-rails console -e production
user = User.where(id: 1).first
user.password = 'qwer1234'
user.password_confirmation = 'qwer1234'
user.save!
exit
/etc/gitlab
目录cp -r gitlab.rb /etc/gitlab/
cp -r gitlab-secrets.json /etc/gitlab/
/var/opt/gitlab/backups/
cp -r 1703008988_2023_12_20_12.0.9_gitlab_backup.tar /var/opt/gitlab/backups/
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
cd /var/opt/gitlab/backups/
# 只能到版本号这里,不然就找不到恢复文件了
gitlab-rake gitlab:backup:restore BACKUP=1703008988_2023_12_20_12.0.9
恢复的过程中会询问 直接输入 yes就OK了
# 手动备份
gitlab-rake gitlab:backup:create
/var/opt/gitlab/backups/
目录, 配置文件和数据库文件在 /etc/gitlab
不会自动备份,需要手动来备份
gitlab.rb
是配置文件,包括端口ip等等,gitlab-secrets.json
是数据库加密的秘钥,恢复数据库就靠它了#! /bin/sh
### BEGIN INIT INFO
# Provides: gitlab_back.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the gitlab_back.sh daemon
# Description: starts gitlab_back.sh using start-stop-daemon
### END INIT INFO
# 遇到错误就退出
#gitlab_version 12.0.9
set -e
dir=/opt/gitlab/bin
cd $dir
# 自动备份sql文件
path=/var/opt/gitlab/backups
time2=$(date "+%Y%m%d%H%M%S")
#如果文件夹不存在,创建文件夹
if [ ! -d $path ]; then
mkdir -p $path
fi
gitlab-rake gitlab:backup:create CRON=1
#删除30天之前的文件
find $path -name "*_gitlab_backup.tar" -mtime +30 -exec rm {} \;
crontab -e
0 1 1 * * /opt/back/gitlab_back.sh