Simple tool for backup your databases, files to cloud storages.
GoBackup is a fullstack backup tool design for web servers similar with backup/backup, work with Crontab to backup automatically.
You can write a config file, run gobackup perform command by once to dump database as file, archive config files, and then package them into a single file.
Itโs allow you store the backup file to local or S3.
- No dependencies.
- Multiple Databases source support.
- Multiple Storage type support.
- Archive paths or files into a tar.
- MySQL
- PostgreSQL
- Redis -
mode: sync/copy
Use tar command to archive many file or path into a .tar file.
- Tgz -
.tar.gz - Uncompressed -
.tar
- OpenSSL -
aes-256-cbcencrypt
- Local
- Amazon S3
GoBackup will seek config files in:
- ~/.gobackup/gobackup.yml
- /etc/gobackup/gobackup.yml
Example config: gobackup.yml.sample
models:
gitlab:
compress_with:
type: tgz
store_with:
type: scp
path: ~/backup
host: your-host.com
private_key: ~/.ssh/id_rsa
username: ubuntu
password: password
timeout: 300
databases:
gitlab:
type: mysql
host: localhost
port: 3306
database: gitlab_production
username: root
password:
additional_options: --single-transaction --quick
gitlab_redis:
type: redis
mode: sync
rdb_path: /var/db/redis/dump.rdb
invoke_save: true
password:
archive:
includes:
- /home/git/.ssh/
- /etc/mysql/my.conf
- /etc/nginx/nginx.conf
- /etc/nginx/conf.d
- /etc/redis/redis.conf
- /etc/logrotate.d/
excludes:
- /home/ubuntu/.ssh/known_hosts
- /etc/logrotate.d/syslog
gitlab_repos:
store_with:
type: local
path: /data/backups/gitlab-repos/
archive:
includes:
- /home/git/repositories$ gobackup perform
2017/09/08 06:47:36 ======== ruby_china ========
2017/09/08 06:47:36 WorkDir: /tmp/gobackup/1504853256396379166
2017/09/08 06:47:36 ------------- Databases --------------
2017/09/08 06:47:36 => database | Redis: mysql
2017/09/08 06:47:36 Dump mysql dump to /tmp/gobackup/1504853256396379166/mysql/ruby-china.sql
2017/09/08 06:47:36
2017/09/08 06:47:36 => database | Redis: redis
2017/09/08 06:47:36 Copying redis dump to /tmp/gobackup/1504853256396379166/redis
2017/09/08 06:47:36
2017/09/08 06:47:36 ----------- End databases ------------
2017/09/08 06:47:36 ------------- Compressor --------------
2017/09/08 06:47:36 => Compress with Tgz...
2017/09/08 06:47:39 -> /tmp/gobackup/2017-09-08T14:47:36+08:00.tar.gz
2017/09/08 06:47:39 ----------- End Compressor ------------
2017/09/08 06:47:39 => storage | FTP
2017/09/08 06:47:39 -> Uploading...
2017/09/08 06:47:39 -> upload /ruby_china/2017-09-08T14:47:36+08:00.tar.gz
2017/09/08 06:48:04 Cleanup temp dir...
2017/09/08 06:48:04 ======= End ruby_china =======You may want run backup in scheduly, you need Crontab:
$ crontab -l
0 0 * * * /usr/local/bin/gobackup perform >> ~/.gobackup/gobackup.log
0 0 * * *means run at 0:00 AM, every day.
And after a day, you can check up the execute status by ~/.gobackup/gobackup.log.
MIT