Wpis z mikrobloga

Pytanie: W jaki sposób osiągnąć cel z Pomysłu 3 aby utworzyć listę katalogów do wykonania kopii zapasowej, a może jest na to jeszcze lepsze rozwiązanie ?

OPIS
--------------------------------------------------------------------------------------------------
Zadanie: Wykonać backup danych w możliwie najszybszym czasie

Pomysł 1: Wykonać rsync dry-run i na tej podstawie określić które katalogi powinny zostać wybrane do wykonania kopi zapasowej aby nie robić rsync dla wszystkich katalogów.
- Czas wykonania 'rsync' dry-run (1h15m dla 4TB danych)

Pomysł 2: Z logów kopi zapasowej odczytać datę wykonania ostatniej kopi zapasowej, na tej podstawie znaleźć pliki zmodyfikowane od tamtego czasu i określić katalogi wymagające wykonania kopii zapasowej
- Czas wykonania 'find' (15m dla 4TB danych)
find $BASEDIR -mindepth 3 -type f -newermt "$LASTBACKUPDATE" -exec echo {} \; | cut -d'/' -f-4 | uniq > $DIRLISTTO_BACKUP

Pomysł 3: Z logów kopi zapasowej odczytać datę wykonania ostatniej kopi zapasowej, na tej podstawie znaleźć pliki zmodyfikowane od tamtego czasu i określić katalogi wymagające wykonania kopii zapasowej,
ale!!!
- założenie1: zazwyczaj katalogów jest mniej niż plików, zatem po znalezieniu 1 pliku zmodyfikowanego, dodać katalog nadrzędny do wykonania kopi zapasowej i przejść do przeszukiwania następnego katalogu

- 'ważne-dane' to katalog główny dla którego wykonywana jest kopia zapasowa
- katalogi dir0-dirX są dodawane do listy na której wykonany zostanie rsync

/tmp/ważne-dane
dir0
dir1
dir2
dir3
dir4
dirX

#bash #linux #skryptowanie #programowanie
  • 6
ty chyba to robisz z flagą -c i dlatego tak wolno?


@diogene:

rsync dry-run wykonywany z flagami jak poniżej, jednak jest coś o czym jeszcze nie wspomniałem, serwerem jest RPi 3B+ do którego jest podłączony dysk USB z danymi(cały zaszyfrowany), drugi dysk na czas backupu jest podłączany też przez USB, także jest tu wąskie gardło, które wpływa na czas wykonania wszystkich operacji na dyskach.

# --dry-run Perform a trial run with