diff --git a/bin/gpg-key-backup.sh b/bin/gpg-key-backup.sh new file mode 100755 index 0000000..6920919 --- /dev/null +++ b/bin/gpg-key-backup.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +# Create a temporary working directory +WORK_DIR=$(mktemp -d -t gpg-backup-XXXXXXXXXX) +trap 'rm -rf "$WORK_DIR"' EXIT +cd "$WORK_DIR" + + +BACKUP_NAME="$(date +%Y_%m_%d)-keys-backup" + +echo Exporting Secret Keys +gpg --export-secret-keys --armor > "$WORK_DIR/secret-keys.asc" + +echo Exporting Public Keys +gpg --export --armor > "$WORK_DIR/public-keys.asc" + +echo Exporting Trust DB +gpg --export-ownertrust > "$WORK_DIR/trust_db.txt" + +echo Files created: +ls -la "$WORK_DIR" + +echo Creating backup archive +tar czfv "/tmp/${BACKUP_NAME}.tar.gz" "$WORK_DIR" +echo Created "/tmp/${BACKUP_NAME}.tar.gz" + + +echo Encrypting backup archive +# AES256 is apparently used by NAS.. +gpg --symmetric --cipher-algo AES256 "/tmp/${BACKUP_NAME}.tar.gz" + +echo Cleaning up unencrypted file +rm "/tmp/${BACKUP_NAME}.tar.gz" + +echo "Backup created in /tmp/${BACKUP_NAME}.tar.gz.gpg" +echo "If you are connected to NAS run 'cp /tmp/20.. /Volumes/travis/gpg_keys/'"