1.创建备份目录,并授权
[root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# chown -R git.git /data/ [root@linux-node1 ~]# ll /data/ -d drwxr-xr-x 3 git git 20 Dec 20 16:21 /data/
(2)修改gitlab配置
设置备份路径 [root@7mini-node1 ~]# vim /etc/gitlab/gitlab.rb 201 gitlab_rails['backup_path'] = "/data/backups/gitlab" #备份路径 204 gitlab_rails['backup_keep_time'] = 604800 #备份7天 [root@7mini-node1 ~]# mkdir -p /data/backups/gitlab [root@7mini-node1 ~]# gitlab-ctl reconfigure [root@7mini-node1 ~]# gitlab-ctl restart
3.定时任务备份
[root@7mini-node1 ~]# crontab -l 0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
4.手动执行脚本进行备份
/usr/bin/gitlab-rake gitlab:backup:create
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
* java/app1 ... [DONE]
* java/app1.wiki ... [SKIPPED]
[root@7mini-node1 ~]# cd /data/backups/gitlab/ [root@7mini-node1 gitlab]# ls 1525934310_gitlab_backup.tar [root@7mini-node1 gitlab]# ll total 80 -rw------- 1 git git 81920 May 10 14:38 1525934310_gitlab_backup.tar [root@7mini-node1 gitlab]# date -d @1525934310 Thu May 10 14:38:30 CST 2018
5 恢复备份
删除gitlab中的app1的项目,再恢复
停止数据写入服务:
[root@7mini-node1 ~]# gitlab-ctl stop unicorn ok: down: unicorn: 1s, normally up [root@7mini-node1 ~]# gitlab-ctl stop sidekiq ok: down: sidekiq: 0s, normally up
恢复数据
[root@7mini-node1 ~]# gitlab-rake gitlab:backup:restore BACKUP=1525934310 [root@7mini-node1 ~]# gitlab-ctl restart
丢失的文件又还原了
gitlab邮箱的配置
126邮件配置: gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '[email protected]' #发件邮箱设置 gitlab_rails['gitlab_email_display_name'] = 'gitlab' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.126.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "xiaoming" gitlab_rails['smtp_password'] = "your password" gitlab_rails['smtp_domain'] = "126.com" gitlab_rails['smtp_authentication'] = "login"