Last active
July 13, 2018 16:29
-
-
Save eyJhb/8803a6059d58fc8d688725e2b8326b84 to your computer and use it in GitHub Desktop.
Simple backup script that uses GPG to encrypt backups with public key before transferring backup to a SCP server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Linux SCP Backup Script | |
# how it works | |
# - | |
#date string | |
d=$(date --iso) | |
# dir where backup is located | |
BACKUP_TEMP_DIR="/root" | |
BACKUP_TEMP_FOLDER="$BACKUP_TEMP_DIR/backup-$d" | |
# remote dir | |
REMOTE_DIR="./" | |
backup_clean() { | |
echo 'Removing local backup folder' | |
rm -rf $BACKUP_TEMP_DIR/backup-* | |
} | |
PGP_ID="" | |
SCP_USER="backup-user" | |
SCP_KEY_FILE="/root/.ssh" | |
SERVER_IP="backup.example.com" | |
SERVER_LOCATION="/media/backup/" | |
PORT=22 | |
backup_make() { | |
mkdir "$BACKUP_TEMP_FOLDER" | |
#backup /etc/openvpn folder | |
tar -czf "$BACKUP_TEMP_FOLDER/etc-openvpn.tar.gz" /etc/openvpn/ | |
#backup /home/eyjhb/openvpn-ca folder | |
tar -czf "$BACKUP_TEMP_FOLDER/home-eyjhb-openvpn-ca.tar.gz" /home/eyjhb/openvpn-ca/ | |
#tar folder into new .tar.gz with correct filename inside root | |
tar -cz -C $BACKUP_TEMP_DIR backup-$d/ | gpg -r $PGP_ID -o "$BACKUP_TEMP_DIR/backup-$d.tar.gz" --encrypt | |
echo "Beginning ftp upload" | |
scp -P $PORT -i $SCP_KEY_FILE $BACKUP_TEMP_DIR/backup-$d.tar.gz $SCP_USER@$SERVER_IP:$SERVER_LOCATION | |
} | |
#clean all files left behind from this script | |
backup_clean | |
#make the backup | |
backup_make | |
#clean up after us again | |
backup_clean |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment