Tworzenie kopii zapasowej wyznaczonego folderu z cyklicznym powtarzaniem

KrEdEnS | 2020-03-21 22:52:59 UTC | #1

Cześć, dzisiaj przedstawię wam mały skrypt bash, który robi backup danego folderu na naszym serwerze o danej godzinie lub w danym dniu, ewentualnie co kilka minut.

Skrypt:

1
2
3
4
5
6
7
#!/bin/bash

DATA=`date +"%b-%d-%y"`
NAZWAPLIKU="backup-$DATA.tar.gz"
ZRODLO="/home/minecraft"             
KDOCELOWY="/home/backup"
tar -cpzf $KDOCELOWY/$NAZWAPLIKU $ZRODLO

Przy ZRODLO należy podać katalog, jaki chcemy zapakować, natomiast przy KDOCELOWY podajemy ścieżkę do folderu, gdzie kopia ma się znajdować. Plikowi należy nadać uprawnienia 700.

Uprawnienia:

chmod 700 nazwaskryptu.sh

Jeżeli chcemy, żeby skrypt sam się uruchamiał należy dodać go do crona, (wpisujemy w terminalu):

crontab -e

Następnie dopisujemy to w pliku, który otworzyliśmy poleceniem wyżej:

00 01 * * * /sciezkadoskryptu/nazwaskryptu.sh

Dzięki temu nasz skrypt uruchomi się każdego dnia o godzinie 01:00 w nocy :slight_smile:

Poniżej zamieszczam wyjaśnienie jak działa ustawienie konkretnej godziny, czy dnia:

---------------------------------------------------------------------------------------------------------------------------------------------------------------
*     *     *     *     *  komenda do wykonania
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- dzień tygodnia (0 - 7) (niedziela=0, poniedziałek=1, wtorek=2, ..., niedziela=7) (niedziela może być przedstawiona jako 0 lub 7)
|     |     |     |
|     |     |     +------- miesiąc (1 - 12)
|     |     |   
|     |     +--------- dzień miesiąca (1 - 31)
|     |  
|     +----------- godzina (0 - 23)
|   
+------------- minuta (0 - 59)

Możemy także stosować:
- * - zawsze (każda minuta, każda godzina, każdy dzień, każdy miesiąc, każdy dzień tygodnia)
- Zakres: x-y – czyli od „x” do „y”, np. „1-5” to każda minuta/godzina/dzień/miesiąc od 1 do 5
- Przerwa: */x – np. „*/8” to polecenie wykonane co 8 minut/godzin/dni…
- Kolejne wartości: x,y,z – np. „2,5,8” może oznaczać polecenie wykonane w 2, 5 i 8 minucie/godzinie…
- Wiele zadań w jednym wpisie:  ;  rozdzielamy polecenia
---------------------------------------------------------------------------------------------------------------------------------------------------------------

kuvus | 2018-10-06 08:26:13 UTC | #2

O, akurat miałem pisać taki skrypt ;p
Dopiszę sobie jeszcze wysyłanie na inny serwer i będzie git


DBanaszewski | 2018-10-06 08:40:17 UTC | #3

@kuvus https://forum.lvlup.pro/t/skrypt-do-backupow-na-serwer-ftp-sftp/5106 ;)


Lethal | 2020-04-11 17:43:50 UTC | #4

Można wykonywać backup przy włączonym serwie minecraft czy lepiej nie?


KrEdEnS | 2020-04-11 17:49:41 UTC | #5

Nie widzę żadnych przeciwwskazań. Z resztą lepsza taka kopia niż żadna


Nieznajomy11 | 2020-04-11 18:05:29 UTC | #6

[quote=”KrEdEnS, post:5, topic:8443”]
Nie widzę żadnych przeciwwskazań.
[/quote]

Jeśli akurat w tym czasie będzie zapis konkretnego pliku regionu mapy może on zostać pominięty w kopii (fragment), jeśli oprogramowanie do backupu nie będzie w stanie poczekać i spróbować ponownie za chwilę.


Lethal | 2020-04-11 18:05:53 UTC | #7

Będzie to utrata np chunków sprzed kilku minut?


Nieznajomy11 | 2020-04-11 18:08:05 UTC | #8

Nie, po prostu w zapisanej kopii może brakować kawałka mapy, który akurat się zapisywał. Zapisy jednak nie są aż takie częste (w domyślnej konfiguracji) i jeśli kopia jest w nocy, to na mapie jest zazwyczaj przeprowadzane mniej modyfikacji, co oznacza również mniej zapisów i mniejsze szanse na wystąpienie problemu.


Lethal | 2020-04-12 00:22:23 UTC | #9

Okej, dzięki ;)
Edit: Skrypt przetestowany, wszystko fajnie działa :smiley:


Dudix | 2020-08-01 23:26:31 UTC | #10

Dzieki, wszystko dziala.