From 25da1fd3213cd6c7e0930c54046a4e47c8ce11d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Wed, 4 Dec 2024 09:15:22 +0100 Subject: [PATCH] initialization of aws-bak.sh --- aws-backup/aws-bak.sh | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 aws-backup/aws-bak.sh diff --git a/aws-backup/aws-bak.sh b/aws-backup/aws-bak.sh new file mode 100644 index 0000000..2aefb65 --- /dev/null +++ b/aws-backup/aws-bak.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# change to your aws-server name +AWS="" + +BACKUP="$(cd "$(dirname "$0")" && pwd)/backup_file.bak" +LOG="/var/log/save-aws.log" + +date_print() { + echo -n "$(date +"%Y-%m-%d %H:%M:%S") - " | tee -a $LOG +} + +error_print() { + date_print + if [ "$1" ]; then + echo -n "Backup error $2 -/> s3://$AWS : " | tee -a "$LOG" + else + echo -n "Backup succeeded --> s3://$AWS : " | tee -a "$LOG" + fi +} + +if [ -n "$1" ]; then + AWS="$1" +fi + +if [ ! -e "$BACKUP" ]; then + touch "$BACKUP" + error_print true "$BACKUP" + echo "$BACKUP created. Please include only the dirname in this file." | tee -a "$LOG" + exit 1 +fi + +while IFS= read -r SOURCE_PATH || [ -n "$SOURCE_PATH" ]; do + if [ -d "$SOURCE_PATH" ] || [ -f "$SOURCE_PATH" ]; then + aws s3 sync "$SOURCE_PATH" "s3://$AWS/$(basename "$SOURCE_PATH")" --delete + + if [ $? -ne 0 ]; then + error_print true "$SOURCE_PATH" + echo "Error while syncing $SOURCE_PATH to the AWS server." | tee -a "$LOG" + exit 1 + fi + else + error_print true "$SOURCE_PATH" + echo "$SOURCE_PATH not found or inaccessible." | tee -a "$LOG" + fi +done < "$BACKUP" + +error_print false "" +echo "All files synced to AWS." | tee -a "$LOG" \ No newline at end of file