Files
scripts/minecraft/backup.sh

54 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
DIR_TO_BACKUP="/opt/Prominence_II"
BACKUP_DEST="/opt/backups"
systemctl is-active --quiet mcserver-prominence2.service
if [ $? -ne 0 ]; then
echo "Service not running."
echo "Skipping shutdown procedure."
else
echo "Notifying players"
/opt/mcrcon/mcrcon -p jEPqvH2oWs5v 'say Restarting in 5 minutes for backup...'
sleep 300
/opt/mcrcon/mcrcon -p jEPqvH2oWs5v 'say Restarting in 30 seconds for backup...'
sleep 30
echo "Stopping mc-server-prominence2.service"
systemctl stop mcserver-prominence2.service
if [ $? -ne 0 ]; then
echo "Couldn't stop service. Exiting."
exit 1
fi
fi
CURRENT_DATE=$(date +%Y-%m-%d_%H-%M)
echo "Creating $BACKUP_DEST/$CURRENT_DATE.tar.gz"
tar -czf "$BACKUP_DEST/$CURRENT_DATE.tar.gz" "$DIR_TO_BACKUP"
if [ $? -ne 0 ]; then
echo "Couldn't create backup. Exiting."
exit 1
fi
echo "Starting mcserver-prominence2.service"
systemctl start mcserver-prominence2.service
if [ $? -ne 0 ]; then
echo "Couldn't start service. Exiting."
exit 1
fi
# Delete old backups if there are more than 10
if [ $(ls $BACKUP_DEST/*.tar.gz | wc -l) -gt 10 ]
then
echo "Files to clean up: "
ls -t $BACKUP_DEST/*.tar.gz | tail -n 1
ls -t $BACKUP_DEST/*.tar.gz | tail -n 1 | xargs rm
fi
echo "Backup successful."