Automatické zálohy

Status
Zamknuto

majklfild

Hrdý developer ♡
Zpráv
19
Bodů
57
Servery
89.203.250.78:9987
Zdravím,
Nevím kolik návodů tady je, ale jdu se podělit o svůj zálohovací skript, který používám pro zálohu webu a minecraft serverů, umístěných na VPS.
Důležité je jako první nainstalovat rsync, který pro zálohování použijeme.

Kód:
sudo apt-get install rsync

Potom:
Kód:
cd

Potom:
Kód:
nano serverzaloha.sh

Potom si zkopírujeme níže napsaný

Bash:
#!/bin/bash

export PATH=/bin:/usr/bin:/usr/local/bin

######################## KONFIGURACE #############################

DATUM=`date +"%d-%m-%Y_%H:%M"` #Format casu - DEN-MESIC-ROK_HODINA:MINUTA - 20-01-2020_12:50
SLOZKA_ZALOHY='/home/zalohy/servery' #Ceska ke slozce, kam se budou servery zalohovat.
SLOZKA_K_ZALOHOVANI='/home/servery/' #Ceska ke slozce, ktera se bude zalohovat.
AUTOMATICKE_SMAZANI=3 #Automaticke smazani zaloh (VE DNECH)

######################## PROCES ZALOHOVANI #############################

mkdir -p ${SLOZKA_ZALOHY}/${DATUM} #AUTOMATICKY VYRVORI SLOZKU TAM KDE MA BYT, POKUD NEEXISTUJE.
echo "Zaloha pro ${SLOZKA_K_ZALOHOVANI} zacala!"


rsync -avr /${SLOZKA_K_ZALOHOVANI}/ /${SLOZKA_ZALOHY}/${DATUM} > serverzaloha-log.txt
#Proces zálohy, ktery vytvori soubor serverzaloha-log.txt, kde vypise vsechny zalohovane soubory.

if [ $? -eq 0 ]; then
  echo "Zalohovani dokonceno!"
#Pokud se vse povede, napise to toto.

else
  echo "Chyba pri zalohovani!"
  exit 1
fi
#Pokud se neco nepovede, zalohovani se ukonci a napise to toto.

######################## AUTOMATICKE MAZANI #############################

DATUM_SMAZANI=`date +"%d-%m-%Y_%H:%M" --date="${AUTOMATICKE_SMAZANI} days ago"` #Datum - AUTOMATICKE_SMAZANI = Smaže složku.

if [ ! -z ${SLOZKA_ZALOHY} ]; then
      cd ${SLOZKA_ZALOHY}
      if [ ! -z ${DATUM_SMAZANI} ] && [ -d ${DATUM_SMAZANI} ]; then
            rm -rf ${DATUM_SMAZANI}
      fi
fi

Nyní máme vše nachystané, teď docílit toho, aby se skript spouštěl automaticky.

Kód:
crontab -e

Dovnitř napíšeme:

Kód:
0 */120 * * * ./serverzaloha.sh

Skript se nám bude spouštět každých 120 hodin, což je 5 dní.
Kdybysme dali do crontabu 5 dní místo hodin, postupně by se to oddalovalo o 1 den. Proto to napišeme v hodinách a máme jistotu.

Poprosím o uzamknutí administrátorem.
 
Status
Zamknuto
Top