Skip to content

Instantly share code, notes, and snippets.

@amircloner
Last active September 6, 2023 19:22
Show Gist options
  • Save amircloner/3a7c102dd8da114576a72a361ceba275 to your computer and use it in GitHub Desktop.
Save amircloner/3a7c102dd8da114576a72a361ceba275 to your computer and use it in GitHub Desktop.
#!/bin/bash
# curl -sSL https://gist.githubusercontent.com/amircloner/3a7c102dd8da114576a72a361ceba275/raw/emrooz-backup-vols-arvan-s3.sh | bash -s -- backup
usage() {
>&2 echo "Usage: backup-vols.sh <backup|restore>"
exit 1
}
backup() {
backup_directory=/home/ubuntu/emrooz-backup-vols-arvan-s3
backup_time=$(date +%Y_%m_%d_%H_%M_%S)
mkdir -p $backup_directory
vols=$(docker volume ls --quiet)
for VOL_NAME_TO_BACKUP in $vols
do
if [ $VOL_NAME_TO_BACKUP == 'budibase_minio_data' ]
then
echo "Volume: $VOL_NAME_TO_BACKUP"
docker run --rm -v $VOL_NAME_TO_BACKUP:/volume -v $backup_directory:/backup docker.arvancloud.ir/library/alpine \
tar -czf /backup/$VOL_NAME_TO_BACKUP-$backup_time.tar.gz -C /volume ./
s3cmd put $backup_directory/$VOL_NAME_TO_BACKUP-$backup_time.tar.gz s3://emrooz-backup-vols-arvan-s3
rm -rf $backup_directory/$VOL_NAME_TO_BACKUP-$backup_time.tar.gz
fi
done
}
if [ $# -ne 1 ]; then
usage
fi
# https://stackoverflow.com/questions/36273665/what-does-set-x-do
set -x
OPERATION=$1
case "$OPERATION" in
"backup" )
backup
;;
* )
usage
;;
esac
set +x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment