mirror of
https://github.com/jkaninda/mysql-bkup.git
synced 2025-12-06 21:49:40 +01:00
92 lines
3.0 KiB
Markdown
92 lines
3.0 KiB
Markdown
---
|
|
title: Backup to SSH
|
|
layout: default
|
|
parent: How Tos
|
|
nav_order: 3
|
|
---
|
|
# Backup to SSH remote server
|
|
|
|
|
|
As described for s3 backup section, to change the storage of your backup and use SSH Remote server as storage. You need to add `--storage ssh` or `--storage remote`.
|
|
You need to add the full remote path by adding `--path /home/jkaninda/backups` flag or using `REMOTE_PATH` environment variable.
|
|
|
|
{: .note }
|
|
These environment variables are required for SSH backup `SSH_HOST`, `SSH_USER`, `SSH_REMOTE_PATH`, `SSH_IDENTIFY_FILE`, `SSH_PORT` or `SSH_PASSWORD` if you dont use a private key to access to your server.
|
|
Accessing the remote server using password is not recommended, use private key instead.
|
|
|
|
```yml
|
|
services:
|
|
mysql-bkup:
|
|
# In production, it is advised to lock your image tag to a proper
|
|
# release version instead of using `latest`.
|
|
# Check https://github.com/jkaninda/mysql-bkup/releases
|
|
# for a list of available releases.
|
|
image: jkaninda/mysql-bkup
|
|
container_name: mysql-bkup
|
|
command: backup --storage remote -d database
|
|
volumes:
|
|
- ./id_ed25519:/tmp/id_ed25519"
|
|
environment:
|
|
- DB_PORT=3306
|
|
- DB_HOST=mysql
|
|
#- DB_NAME=database
|
|
- DB_USERNAME=username
|
|
- DB_PASSWORD=password
|
|
## SSH config
|
|
- SSH_HOST="hostname"
|
|
- SSH_PORT=22
|
|
- SSH_USER=user
|
|
- REMOTE_PATH=/home/jkaninda/backups
|
|
- SSH_IDENTIFY_FILE=/tmp/id_ed25519
|
|
## We advise you to use a private jey instead of password
|
|
#- SSH_PASSWORD=password
|
|
|
|
# mysql-bkup container must be connected to the same network with your database
|
|
networks:
|
|
- web
|
|
networks:
|
|
web:
|
|
```
|
|
|
|
|
|
### Recurring backups to SSH remote server
|
|
|
|
As explained above, you need just to add required environment variables and specify the storage type `--storage ssh`.
|
|
You can use `--cron-expression "* * * * *"` or `BACKUP_CRON_EXPRESSION=0 1 * * *` as described below.
|
|
|
|
```yml
|
|
services:
|
|
mysql-bkup:
|
|
# In production, it is advised to lock your image tag to a proper
|
|
# release version instead of using `latest`.
|
|
# Check https://github.com/jkaninda/mysql-bkup/releases
|
|
# for a list of available releases.
|
|
image: jkaninda/mysql-bkup
|
|
container_name: mysql-bkup
|
|
command: backup -d database --storage ssh --cron-expression "0 1 * * *"
|
|
volumes:
|
|
- ./id_ed25519:/tmp/id_ed25519"
|
|
environment:
|
|
- DB_PORT=3306
|
|
- DB_HOST=mysql
|
|
- DB_NAME=database
|
|
- DB_USERNAME=username
|
|
- DB_PASSWORD=password
|
|
## SSH config
|
|
- SSH_HOST="hostname"
|
|
- SSH_PORT=22
|
|
- SSH_USER=user
|
|
- REMOTE_PATH=/home/jkaninda/backups
|
|
- SSH_IDENTIFY_FILE=/tmp/id_ed25519
|
|
# - BACKUP_CRON_EXPRESSION=0 1 * * * # Optional
|
|
#Delete old backup created more than specified days ago
|
|
#- BACKUP_RETENTION_DAYS=7
|
|
## We advise you to use a private jey instead of password
|
|
#- SSH_PASSWORD=password
|
|
# mysql-bkup container must be connected to the same network with your database
|
|
networks:
|
|
- web
|
|
networks:
|
|
web:
|
|
```
|