feat: Add backup script
This commit is contained in:
27
backup.sh
Executable file
27
backup.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <password>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PASSWORD="$1"
|
||||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_NAME="$(basename "$PROJECT_DIR")"
|
||||
TIMESTAMP="$(date +%Y%m%d_%H%M%S)"
|
||||
OUTPUT="$HOME/${PROJECT_NAME}_${TIMESTAMP}.tar.gz.enc"
|
||||
|
||||
echo "Creating encrypted archive of '$PROJECT_NAME'..."
|
||||
|
||||
tar czf - \
|
||||
--exclude-from="$PROJECT_DIR/.gitignore" \
|
||||
--exclude=".git" \
|
||||
-C "$(dirname "$PROJECT_DIR")" \
|
||||
"$PROJECT_NAME" | \
|
||||
openssl enc -aes-256-cbc -pbkdf2 -salt -pass "pass:$PASSWORD" -out "$OUTPUT"
|
||||
|
||||
echo "Done: $OUTPUT"
|
||||
echo ""
|
||||
echo "To decrypt and extract:"
|
||||
echo " openssl enc -d -aes-256-cbc -pbkdf2 -in \"$OUTPUT\" -pass pass:<password> | tar xzf -"
|
||||
Reference in New Issue
Block a user