Add backups/backup.sh

This commit is contained in:
Lee 2023-11-28 22:38:19 +00:00
commit 2e020da33b

54
backups/backup.sh Normal file

@ -0,0 +1,54 @@
#!/bin/bash
# Configuration
desired_network="your_local_network"
# Replace with the actual process name
# You can find it with: ps -eo comm=
process_to_find="Minecraft_Bedro"
dir_to_backup="/home/deck/.local/share/mcpelauncher/games/com.mojang/minecraftWorlds/"
backup_path="/home/deck/Documents/mc_bedrock_backups/"
max_backups=48 # Set the maximum number of backups to keep
# Interval Values
found_network=false
found_process=false
# Check if the desired network is found
wireless_network_names=$(nmcli -t -f active,ssid dev wifi | grep yes | cut -d: -f2)
for network in $wireless_network_names; do
if [ "$network" == "$desired_network" ]; then
found_network=true
break
fi
done
# If the desired network is not found, print a message and exit
if [ "$found_network" != true ]; then
echo "The desired network was not found. Not running..."
exit 1
fi
# Check if the desired process is running
if pgrep -x "$process_to_find" > /dev/null; then
found_process=true
else
echo "The desired process is not running. Not creating backups..."
exit 1
fi
cd "$dir_to_backup"
# Backup the directory and save it with maximum compression
backup_filename="backup_$(date '+%Y%m%d_%H%M%S').zip"
zip -r -9 "$backup_path/$backup_filename" "./"
# Check if the zip process was successful
if [ $? -eq 0 ]; then
echo "Backup successful. Saved to: $backup_path/$backup_filename"
# Remove older backups to keep only the last N backups
ls -t "$backup_path" | tail -n +$((max_backups + 1)) | xargs -I {} rm -- "$backup_path/{}"
echo "Older backups removed to keep the last $max_backups backups."
else
echo "Backup failed."
fi