Files
mysql-bkup/docs/how-tos/backup-to-ssh.md
2024-10-10 21:10:40 +02:00

2.9 KiB

title, layout, parent, nav_order
title layout parent nav_order
Backup to SSH default How Tos 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.

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.

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
      ## 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: