Minecraft Backups putzen

Dieses Skript bereinigt die Tagesbackups.

Mit einem Editor das File backup_putzen erstellen. Ich habe es unter /home/minecraft/bin/ gespeichert.

mkdir -p /home/minecraft/bin/;nano /home/minecraft/bin/backup_putzen
#!/bin/bash
 # lock dirs/files
 LOCKDIR="/run/lock/backup_putzen"
 PIDFILE="${LOCKDIR}/backup_putzen.pid"
 # exit codes and text
 ENO_SUCCESS=0; ETXT[0]="ENO_SUCCESS"
 ENO_GENERAL=1; ETXT[1]="ENO_GENERAL"
 ENO_LOCKFAIL=2; ETXT[2]="ENO_LOCKFAIL"
 ENO_RECVSIG=3; ETXT[3]="ENO_RECVSIG"
 ###
 ### start locking attempt
 ###
 trap 'ECODE=$?; echo "[statsgen] Exit: ${ETXT[ECODE]}($ECODE)" >&2' 0
 echo -n "[statsgen] Locking: " >&2
 if mkdir "${LOCKDIR}" &>/dev/null; then
 # lock succeeded, install signal handlers before storing the PID just in case
 # storing the PID fails
 trap 'ECODE=$?;
 echo "[statsgen] Removing lock. Exit: ${ETXT[ECODE]}($ECODE)" >&2
 rm -rf "${LOCKDIR}"' 0
 echo "$$" >"${PIDFILE}"
 # the following handler will exit the script upon receiving these signals
 # the trap on "0" (EXIT) from above will be triggered by this trap's "exit" command!
 trap 'echo "[statsgen] Killed by a signal." >&2
 exit ${ENO_RECVSIG}' 1 2 3 15
 echo "success, installed signal handlers"
 else
 # lock failed, check if the other PID is alive
 OTHERPID="$(cat "${PIDFILE}")"
 # if cat isn't able to read the file, another instance is probably
 # about to remove the lock -- exit, we're *still* locked
 # Thanks to Grzegorz Wierzowiecki for pointing out this race condition on
 # http://wiki.grzegorz.wierzowiecki.pl/code:mutex-in-bash
 if [ $? != 0 ]; then
 echo "lock failed, PID ${OTHERPID} is active" >&2
 exit ${ENO_LOCKFAIL}
 fi
 if ! kill -0 $OTHERPID &>/dev/null; then
 # lock is stale, remove it and restart
 echo "removing stale lock of nonexistant PID ${OTHERPID}" >&2
 rm -rf "${LOCKDIR}"
 echo "[statsgen] restarting myself" >&2
 exec "$0" "$@"
 else
 # lock is valid and OTHERPID is active - exit, we're locked!
 echo "lock failed, PID ${OTHERPID} is active" >&2
 exit ${ENO_LOCKFAIL}
 fi
 fi
 # Allgemeine Variablen für Logfiles
 exec >>/var/log/backup_putzen.log 2>&1
 echo
 date
 datum=`date +%Y_%0m_%0e`
 ########################################################################
 # Maximales alter der Minecraft-Backupfiles in Tagen
 ########################################################################
 #
 # Hier "ordner" und "alter" anpassen.
 #
 ########################################################################
 ordner="/mnt/minecraft_backup"
 alter="2"
 echo ------------------------------------------------
 #---------------------------------- GESAMT BACKUP ROUTINE
 echo Minecraft-Backupfiles bereinigen
 echo Ordner wird auf $ordner gesetzt
 echo Alter wird auf $alter gesetzt
 echo
 echo ------- $ordner -- Sicherungen älter als $alter Tage
 echo Dateien in $ordner werden auf Alter überprüft - max. $alter Tage
 find $ordner -mtime +$alter -exec echo {} \;
 find $ordner -mtime +$alter -exec rm -fr {} \;
 echo ------------------------------------------------
 echo Vorgang um $date abgeschlossen

Danach noch ausführbar machen.

chmod +x /home/minecraft/bin/backup_putzen

Kommentare sind geschlossen.