Skip to content

Instantly share code, notes, and snippets.

@pfcoperez
Created October 25, 2021 16:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pfcoperez/b704ed6080b8f99ce10489057ebf2645 to your computer and use it in GitHub Desktop.
Save pfcoperez/b704ed6080b8f99ce10489057ebf2645 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# ./handleMemoriesUploads.sh /srv/uploads/digitalmemories /mnt/external/managedark/digitalmemories /srv/enc/clear/digitalmemories/ /srv/enc/ciphered/digitalmemories/ amazonDrive:/backup/memories false
# ./handleMemoriesUploads.sh /srv/uploads/digitalmemories /mnt/external/managedark/digitalmemories /srv/enc/clear/digitalmemories/ /srv/enc/ciphered/digitalmemories/ s3:orionsmemories
#
SOURCE_DIR=$1
LOCAL_DEST=$2
ENC_IN=$3
ENC_OUT=$4
RCLONE_SYNC_DEST=$5
SKIP_UPLOAD=$6
STEP=1
function logStep {
DESC=$1
echo "Step $STEP: $DESC"
STEP=$(( $STEP+1 ))
}
echo "Starting files synchronization:"
echo "-------------------------------"
echo " Source directory: $SOURCE_DIR"
echo " Local destination directory: $LOCAL_DEST"
echo " EncFS clear directory: $ENC_IN"
echo " EncFS ciphered output directory: $ENC_OUT"
echo " Online backup ciphered destination: $RCLONE_SYNC_DEST"
logStep "Copying contents to local destination $LOCAL_DEST"
time rsync -ua $SOURCE_DIR/* $LOCAL_DEST
logStep "Ciphering content..."
time rsync -ua $SOURCE_DIR/* $ENC_IN
if [ "$SKIP_UPLOAD" == "true" ]; then
logStep "Skipped upload and clean-up"
exit 0
fi
logStep "Uploading ciphered contents to online storage: $RCLONE_SYNC_DEST"
rclone copy $ENC_OUT $RCLONE_SYNC_DEST --exclude *.xml
UPLOAD_RESULT=$?
#rclone copy $ENC_OUT /mnt/external/temp_ciphered/ --exclude *.xml #DEBUG REMOVE EVENTUALLY
if [ "$UPLOAD_RESULT" == "0" ]; then
logStep "Files uploaded, cleaning-up temporary ciphered files ..."
rm -r $ENC_IN/*
logStep "... and source contents"
rm -r $SOURCE_DIR/*
else
echo "UPLOAD FAILED! Please, clean cipher folders yourself"
exit $UPLOAD_RESULT
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment