69 lines
1.2 KiB
Bash
Executable File
69 lines
1.2 KiB
Bash
Executable File
#!/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
|
|
|