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