scripts/docker/container.backup

67 lines
1.5 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# Purpose {{{
## Backup data of a Docker container.
## To do that, the script will:
## Stop the corresponding container (or docker if no related service is found)
## Make a archive of the container's data to a backup path
## Clean old backup
## Restart the container service (or docker.service)
# }}}
# How-to use {{{
## The container and it's data directory should have the same name.
# }}}
# Vars {{{
DEBUG=0
# }}}
# Tests {{{
# Expect at least 1 argument and 3 maximum {{{
case $# in
1 )
ct_name="${1}"
## Absolut path to the container data
docker_data_path="/srv/docker"
## Absolut path to store the archives.
## A sub-directory will be created for the container
docker_backup_path="/mnt/backup/docker"
;;
2 )
ct_name="${1}"
docker_data_path="${2}"
docker_backup_path="/mnt/backup/docker"
;;
3 )
ct_name="${1}"
docker_data_path="${2}"
docker_backup_path="${3}"
;;
* )
cat << HELP
container.backup --
Backup data of a given Docker container.
EXAMPLE:
- Backup data of FIRST_DOCK container
container.backup FIRST_DOCK
HELP
exit 1
;;
esac
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Args management — Container name to backup: ${ct_name} ."
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Args management — Path to Docker data: ${docker_data_path} ."
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Args management — Path to store the backup: ${docker_backup_path} ."
# }}}
# }}}
exit 0