- Generate a profile
goback -g > profile.backup.yaml
- Modify the profile according to your needs
Details:
-
name: the base name used when generating compressed files
-
remote: if defined, goback will backup remote locations instead of local ones
- type [ sshPassword | sshKey | sshAgent ]: how to login to the remote server.
- host: ssh host
- port: ssh port
- user: ssh user
- password: plain text ssh password, used if type is sshPassword
- privateKey: path to a private key, used if type is sshKey
- passPhrase: plain text pass phrase to the private key
-
dirs: is a list of directories to compress and download.
- root: root of the path to backup.
- exclude: a list of glob patterns of files to exclude from the backup.
example:
- root: /home/user/
exclude:
- "*.log"
- root: /var/log
- mysql: uses mysqldump ( needs to be installed ) to add databases to the backup. list of databases to backup.
- dbname: database name
- user: database user to login to the db. Leave empty to let the tool try to get access.
- pw: database user to login to the db. Leave empty to let the tool try to get access.
- Note: goback will try to get root credentials for mysql from common locations like /etc/my.cnf
example:
mysql:
- dbname: dbname
user: user
pw: pw
-
syncBackups: will connect to the remote location, and download existing backup files to the local path.
-
destination: local path where backup files are created
-
keep: how many older backups to keep for this profile
-
owner: change the owner of the resulting backup file
-
mode: change the mode of the resulting backup file
-
notify: notify per email if a profile was successful or not
- to: list of email addresses
- host: email server host
- port: email sever port
- user: email server user to login
- password: password for that user on the email server
- backup git repositories
- write documentation
- add option to follow symlink instead of adding them to the backup file
- use tar.gz instead of zip to keep file permissions
- don't fail on broken symlinks
- go
- make
- docker
- goreleaser
- golangci-lint
- git
make sure you have your gh token stored locally in ~/.goreleaser/gh_token
to release a new version:
make release version="v0.1.2"