Skip to content

Instantly share code, notes, and snippets.

@oldcai
Last active October 25, 2020 16:43
Show Gist options
  • Save oldcai/24b54b0f94de0c960cf0e4ba0d47efd5 to your computer and use it in GitHub Desktop.
Save oldcai/24b54b0f94de0c960cf0e4ba0d47efd5 to your computer and use it in GitHub Desktop.
rancher server daily backup script
#!/bin/bash
version='stable'
#version='latest'
mkdir -p /var/backups/rancher
cd /var/backups/rancher
container_id=$(docker ps|grep rancher:${version}|awk '{ print $1 }')
echo $container_id
docker stop $container_id
today=$(date +%Y%m%d)
docker create --volumes-from $container_id --name rancher-data-$today rancher/rancher:${version}
docker run --volumes-from rancher-data-$today -v $PWD:/backup:z alpine tar zcvf /backup/rancher-data-backup-${version}-${today}.tar.gz /var/lib/rancher >> /dev/null
docker start $container_id
docker container ls -a|grep data
ls -lah|grep backup-
docker container rm rancher-data-$today
find /var/backups/rancher -mtime +30 -delete
#!/bin/bash
# ./restore_rancher.sh backups/rancher/rancher-data-backup-latest-20201025.tar.gz
version='stable'
#version='latest'
container_id=$(docker ps|grep rancher:${version}|awk '{ print $1 }')
echo original: $container_id
docker stop $container_id
today=$(date +%Y%m%d)
docker run --volumes-from $container_id -v $PWD:/backup \
busybox sh -c "rm /var/lib/rancher/* -rf && \
tar pzxvf /backup/$1"
docker start $container_id
#!/bin/bash
version='stable'
#version='latest'
mkdir -p /var/backups/rancher
cd /var/backups/rancher
container_id=$(docker ps|grep rancher:${version}|awk '{ print $1 }')
echo $container_id
docker stop $container_id
today=$(date +%Y%m%d)
docker create --volumes-from $container_id --name rancher-data-$today rancher/rancher:${version}
docker run --volumes-from rancher-data-$today -v $PWD:/backup:z alpine tar zcvf /backup/rancher-data-rollback-${version}-${today}.tar.gz /var/lib/rancher >> /dev/null
docker pull rancher/rancher:${version}
docker run -d --volumes-from rancher-data-$today --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:${version}
docker container ls -a|grep data
ls -lah|grep backup-
docker container rm rancher-data-$today
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment