Basic s3 backup and restore script
This commit is contained in:
68
bin/sss
Executable file
68
bin/sss
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Basic backup and restore to s3 bucket
|
||||||
|
|
||||||
|
source ~/.sssrc
|
||||||
|
|
||||||
|
if [ -z ${AWS_ACCESS_KEY_ID+x} ] ||
|
||||||
|
[ -z ${AWS_SECRET_ACCESS_KEY+x} ] ||
|
||||||
|
[ -z ${PASSPHRASE+x} ] ||
|
||||||
|
[ -z ${ENCRYPT_SIGN_KEY+x} ]; then
|
||||||
|
echo "Error: AWS config not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function backup() {
|
||||||
|
if [ -z ${1+x} ]; then
|
||||||
|
echo "No bucket provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -d "$2" ]; then
|
||||||
|
echo "Folder $2 does not exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
duplicity full \
|
||||||
|
--encrypt-sign-key "$ENCRYPT_SIGN_KEY" \
|
||||||
|
--s3-use-new-style \
|
||||||
|
--s3-european-buckets \
|
||||||
|
--progress \
|
||||||
|
"$2" "s3://s3-eu-west-1.amazonaws.com/$1/$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
function restore() {
|
||||||
|
if [ -z ${1+x} ]; then
|
||||||
|
echo "No bucket provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z ${2+x} ]; then
|
||||||
|
echo "No Folder provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
DEST=$3
|
||||||
|
if [ -z ${3+x} ]; then
|
||||||
|
DEST=$2
|
||||||
|
fi
|
||||||
|
duplicity restore \
|
||||||
|
--progress \
|
||||||
|
"s3://s3-eu-west-1.amazonaws.com/$1/$2" $DEST
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
backup)
|
||||||
|
backup $2 $3
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
restore)
|
||||||
|
restore $2 $3 $4
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "s3 backup and restore tool"
|
||||||
|
echo "Backup:"
|
||||||
|
echo "sss backup bucket-name folder"
|
||||||
|
echo
|
||||||
|
echo "Restore:"
|
||||||
|
echo "sss restore bucket-name folder [destination]"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
Reference in New Issue
Block a user