#!/bin/bash set -e DOCKINGDIR=/home/miguel/docking BACKUPDIR=/home/miguel/BACKUP BACKUPSCRIPT=/home/miguel/git/admin/docker_tools/docker_backup_offline_vol.sh TIMESTAMP=`date +"%Y%m%d_%H%M%S"` DOCKS=`ls $DOCKINGDIR` function backup_dock { SOURCE=$1 TARGET=$2 mkdir -p $TARGET CONTAINERS=`cd $SOURCE && docker-compose ps -q` ALLVOLUMES= for c in $CONTAINERS do NAME=`docker inspect -f '{{ .Name }}' $c | sed 's/\///'` echo container = [$NAME] docker inspect $c > $TARGET/$NAME.json VOLUMES=`docker inspect -f '{{ range .Mounts }}{{.Name}} {{end}}' $c` for v in $VOLUMES do ALLVOLUMES+="$v " done done # remove duplicates ALLVOLUMES=`echo $ALLVOLUMES | tr ' ' '\n' | sort | uniq` ## STOP ## cd $SOURCE set +e docker-compose down set -e ## tar -C $SOURCE -cf $TARGET/compose.tar . cd $TARGET sudo chown 100000 . for v in $ALLVOLUMES do echo volume = [$v] $BACKUPSCRIPT $v $v.tar done ## START ## cd $SOURCE docker-compose up -d ## } ########### CYCLE THROUGH ALl DOCKS ############## for d in $DOCKS do # SKIP xxx FOLDER! if [ "$d" == "xxx" ]; then continue fi echo dock = [$d] backup_dock $DOCKINGDIR/$d $BACKUPDIR/$TIMESTAMP/$d done ### make sure nginx is restarted at the end echo "restart nginx rev proxy!" cd /home/miguel/docking/http_rev_proxy docker-compose down docker-compose up -d echo "tar result" cd $BACKUPDIR tar -cf $TIMESTAMP.tar $BACKUPDIR/$TIMESTAMP echo "READY"