バージョン : GitLab 6.0.2
最初思いっきり mysqldump しかけてあれーダンプファイルのサイズ少ないなーとか思ってたんですが Git なんですから当然ですよね。GitLab ではMySQL のダンプと Git レポジトリのダンプを行ってくれる便利なバックアップツール(Rake タスク)が提供されています。
doc/raketasks/backup_restore.md · master · GitLab.org / GitLab FOSS · GitLab
bundle exec rake gitlab:backup:create RAILS_ENV=production
上記 URL には cron の設定まで載っていますがシェルスクリプトで呼ぼうとして
/opt/rh/ruby193/root/usr/bin/ruby: error while loading shared libraries: libruby.so.1.9: cannot open shared object file: No such file or directory
みたいに怒られたので下記のような感じになりました。PATH はもちろん環境依存です。
#!/bin/bash PATH=/opt/rh/ruby193/root/usr/bin:$PATH LD_LIBRARY_PATH=/opt/rh/ruby193/root/usr/lib64:$LD_LIBRARY_PATH export PATH export LD_LIBRARY_PATH cd /home/git/gitlab bundle exec rake gitlab:backup:create RAILS_ENV=production
ちなみに GitLab 内のプロジェクトの wiki に何も書いていないと下記のように FAILED とマークされますが、バックアップ自体は正常に行われているようです。
Dumping database ... done Dumping repositories ... * beniyama/hoge ... [DONE] * beniyama/hoge.wiki ... [FAILED] done Dumping uploads ... done Creating backup archive: 1395061200_gitlab_backup.tar ... done Deleting tmp directories ... done Deleting old backups ... done. (0 removed)