Skip to main content

Скрипт бэкап backup.sh

#!/bin/bash 

DATE_ARHIV=`date "+%Y_%m_%d"`

TMP_DIR=/tmp/$DATE_ARHIV

#conteiner id

housekeeping_id='28017d6d7695'

worker_id='a8611fdecac4'

netbox_id='822cdbe4cb2a'

redis_cache_id='8b3422a35c28'

redis_id='5b7b5f323f56'

postgres_id='2b9f553f4a64'

names_conteiner=("housekeeping" "worker" "netbox" "redis_cache" "postgres")
#script

err() { echo -e "* Error: $1"; exit 1; }

mkdir $TMP_DIR

# arhiv conteiner

for NAMES in "${names_conteiner[@]}"
 do
  NAMES_2=${NAMES}_id
  echo "$NAMES -- ${!NAMES_2}"
  docker commit -p ${!NAMES_2} $NAMES || err "error commit"
  docker save -o ${TMP_DIR}/${NAMES}.tar $NAMES || err "error arhiv conteiner"
 done

#arhgiv volumes 
tar -cvpzf ${TMP_DIR}/volumes.tar.gz --one-file-system /var/lib/docker/volumes/ || err "error volumes arhiv" 

#arhiv github file
tar -cvpzf ${TMP_DIR}/netbox-docker.tar.gz --one-file-system /home/user/netbox-docker || err "error github arhiv" 

#vse failii v arhiv backup
tar -cvpzf /backup/${DATE_ARHIV}.tar.gz  --one-file-system $TMP_DIR || err "error backup arhiv"

#remove tmp papku
rm -r $TMP_DIR

#proverka arhiva
tar -tvzf /backup/${DATE_ARHIV}.tar.gz>/dev/null && echo "Backup is good!" || err "!!!!!error backup!!!!!!"