Sauvegarde des données persistantes

backup-and-rotate-container.sh

#!/bin/bash

set -e

DRUPAL_CONTAINER_ID=`docker ps -qf label=io.rancher.stack_service.name=MFR-RECETTE/atos-mfr-recette-php`
if [ -z "$DRUPAL_CONTAINER_ID" ]; then
    echo "Container drupal not found !"
    exit 1
fi

## Mise en pause de grafana
docker pause $DRUPAL_CONTAINER_ID

## Sauvegarde des volumes grafana
mkdir -p /opt/backup/drupal
tar czf /opt/backup/drupal/drupal-backup-`date +"%Y_%m_%d"`.tar.gz /opt/drupal/

## Remise en service de grafana
docker unpause $DRUPAL_CONTAINER_ID

## Supprime les sauvegardes vieilles de plus de 1 semaine
find /opt/backup/drupal/ -type f -mtime +7 -delete

incremental-backup-example.sh

#!/bin/bash

set -e

echo "KO" > /var/log/backup/example-inc.log

EXAMPLE_CONTAINER_ID=`docker ps -qf name=sonar-re3m`
if [ -z "$EXAMPLE_CONTAINER_ID" ]; then
    echo "Container Example not found !"
    echo "KO no container found" > /var/log/backup/example-inc.log
    exit 1
fi

## Mise en pause de nexus
docker pause $EXAMPLE_CONTAINER_ID

echo "KO 1" > /var/log/backup/example-inc.log

## Petite pause de 30 secondes laissant le temps au cache nexus de se supprimer
## Sans cela la commande rsync risque d'échouer sur l'erreur "some files vanished before they could be transferred"
sleep 30

## Sauvegarde du volume nexus du jour
mkdir -p /docker/backup/volume/example/incremental
rsync -a -p -o -g --delete --ignore-missing-args /docker/volume/sonar-re3m /docker/backup/volume/example/incremental/service 2> /var/log/backup/example-inc-detail.log

echo "KO 2" > /var/log/backup/example-inc.log

## Remise en service de nexus
docker unpause $EXAMPLE_CONTAINER_ID

echo "OK $?" > /var/log/backup/example-inc.log

backup-and-rotate-docker-conf.sh

#!/bin/bash

set -e

## Sauvegarde des confs docker du jour
mkdir -p /opt/backup/docker-conf
tar czf /opt/backup/docker-conf/docker-conf-backup-`date +"%Y_%m_%d"`.tar.gz /etc/docker/daemon.json /lib/systemd/system/docker.service /etc/systemd/system/docker.service.d/http-proxy.conf

## Supprime les sauvegardes vieilles de plus de 1 semaine
find /opt/backup/docker-conf/ -type f -mtime +7 -delete

docker-clean.sh

#!/bin/bash
docker system prune -a -f