diff options
author | crupest <crupest@outlook.com> | 2022-11-23 14:17:16 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-11-23 14:17:16 +0800 |
commit | 6272b219ba4fb29dd542d10cb846a0dbb6edf4ea (patch) | |
tree | 5096701ba667057049597ca8f913ee91aaa1e009 /docker/auto-backup/daemon.bash | |
parent | 647bebc5cc01ab6e1714885563d8b09e2ed51a24 (diff) | |
download | crupest-6272b219ba4fb29dd542d10cb846a0dbb6edf4ea.tar.gz crupest-6272b219ba4fb29dd542d10cb846a0dbb6edf4ea.tar.bz2 crupest-6272b219ba4fb29dd542d10cb846a0dbb6edf4ea.zip |
Add backup.
Diffstat (limited to 'docker/auto-backup/daemon.bash')
-rw-r--r-- | docker/auto-backup/daemon.bash | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/docker/auto-backup/daemon.bash b/docker/auto-backup/daemon.bash new file mode 100644 index 0000000..db49e9b --- /dev/null +++ b/docker/auto-backup/daemon.bash @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +set -e + +# Check I'm root. +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit 1 +fi + +# Check if CRUPEST_AUTO_BACKUP_BUCKET_NAME is defined. +if [[ -z "$CRUPEST_AUTO_BACKUP_BUCKET_NAME" ]]; then + echo "CRUPEST_AUTO_BACKUP_BUCKET_NAME is not defined or empty" + exit 1 +fi + +rclone --version + +# Check xz and tar +xz --version +tar --version + +function backup { + # Output "Begin backup..." in yellow and restore default + echo -e "\e[0;103m\e[K\e[1mBegin backup..." "\e[0m" + + # Get current time and convert it to YYYY-MM-DDTHH.MM.SS + current_time=$(date +%Y-%m-%dT%H.%M.%S) + echo "Current time: $current_time" + echo "Create tar.xz for data..." + + # tar and xz /data to tmp + tar -cJf /tmp/data.tar.xz -C / data + + echo "Use rclone to upload data..." + # upload to remote + rclone copyto /tmp/data.tar.xz "mycos:$CRUPEST_AUTO_BACKUP_BUCKET_NAME/$current_time.tar.xz" + + echo "Remove tmp file..." + # remove tmp + rm /tmp/data.tar.xz + + # echo "Backup finished!" in green and restore default + echo -e "\e[0;102m\e[K\e[1mFinish backup!" "\e[0m" +} + +echo "Initial delay: $CRUPEST_AUTO_BACKUP_INIT_DELAY" +sleep "$CRUPEST_AUTO_BACKUP_INIT_DELAY" + +# forever loop +while true; do + backup + + # sleep for CRUPEST_AUTO_BACKUP_INTERVAL + echo "Sleep for $CRUPEST_AUTO_BACKUP_INTERVAL for next backup..." + sleep "$CRUPEST_AUTO_BACKUP_INTERVAL" +done + |