/etc/gitlab/gitlab.rb中描述备份位置,默认备份到/var/opt/gitlab/backups/
如果想要备份到/mnt/backups,修改以下配置,去掉注释
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = “/mnt/backups" #备份目录
gitlab_rails['backup_archive_permissions'] = 0644 #生成的文件权限
gitlab_rails['backup_keep_time'] = 864000
#保留10天
修改完成后重新配置:
gitlab-ctl reconfigure
备份命令:
gitlab-rake gitlab:backup:create
自动备份:
也可以通过crontab使用备份命令实现自动备份:
sudo su -
crontab -e
加入以下, 实现每天凌晨2点进行一次自动备份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
恢复:
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 启动Gitlab
sudo gitlab-ctl start
迁移:
与恢复一样,但是要求两个GitLab版本号一致
GitLab备份脚本示例:
#!/bin/bash
#root user
#crontab -e
#add
#56 00 * * * /home/delta/gitautobackup.sh
#every data 00:56 backup
gitBaseBackup="GitLab_Backup"
gitnewBackup=$gitBaseBackup/Backup_new
gitoldBackup=$gitBaseBackup/Backup_old
ftpUrl="192.168.10.209"
ftpUser="administrator"
ftpPasswd="Delta123"
localDir="/home/delta/GitLab_Backup"
localnewBackup=$localDir/Backup_new
localoldBackup=$localDir/Backup_old
if [ ! -d $localnewBackup ]; then
mkdir -p $localnewBackup
fi
if [ ! -d $localoldBackup ]; then
mkdir -p $localoldBackup
fi
if [ -f $localnewBackup/*.tar ]; then
#delete old
echo "delete old backup"
rm -rf $localoldBackup/*
#move new to old
echo "move new to old"
mv $localnewBackup/* $localoldBackup
else
echo "no new backup to old"
fi
#git own backup directory
echo "change backup directory owner to git"
chown -R git $localDir
#create new git backup
echo "GitLab Backup ..."
gitlab-rake gitlab:backup:create
#check backup is whether successful
if [ ! -f $localnewBackup/*.tar ]; then
cd $localDir
currentTime=`date " %Y-%m-%d %H:%M:%S"`
#currentTimeStamp=`date -d "$currentTime" `
echo ${currentTime}" Backup GitLab error! exit!"
echo ${currentTime}" Backup GitLab error! " >>GitLabBackupError.log
exit
fi
cd $localDir
#change owner back to delta
chown -R delta $localDir
#delete ftp backup
echo "push to ftp"
ftp -n<<!
open $ftpUrl
user $ftpUser $ftpPasswd
binary
cd $gitBaseBackup
prompt off
lcd $localnewBackup/
put *.tar
bye
!
echo "backup successful"
exit
转载请注明原文地址: https://ju.6miu.com/read-673085.html