ce029c47 2021-07-19 17:23:05 +0
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 "$LAST_BACKUP_DATE" -exec echo {} \; | cut -d'/' -f-4 | uniq > $DIR_LIST_TO_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
wykopek_n 2021-07-19 17:34:54 +1
@ce029c47: zatrudnij auditd do audytowania modyfikowanych plików i będziesz miał w logu listę konkretnych plików, które zostały zmienione. Ewentualnie sobie awkiem czy cutem ze ścieżki wytnij katalog nadrzędny.
d.....e 2021-07-19 18:26:16 +1
- Czas wykonania 'rsync' dry-run (1h15m dla 4TB danych)

@ce029c47: ty chyba to robisz z flagą -c i dlatego tak wolno?

Zrób rsync z hardlinkami to nie będzie kopiowało plików jeśli będzie mógł je znaleźć w folderze poprzedniej kopii np. https://www.cyberciti.biz/faq/linux-unix-apple-osx-bsd-rsync-copy-hard-links/

Ale - podobnie jak kryptografii, nie rób własnej metody backupu. Używaj sprawdzonych rozwiązań np. borg
ce029c47 [OP] 2021-07-19 17:52:02 +0
zatrudnij auditd

@wykopek_n: nie znałem, sprawdzę
ce029c47 [OP] 2021-07-19 19:03:12 +0
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 no changes made
# --modify-window=5 Compare mod-times with reduced accuracy, because NTFS is used on encrypted partition.
# --stats Give some file-transfer stats.
# --times This tells rsync to transfer modification times along with the files and update them on the remote system.
# --itemize-changes Requests a simple itemized list of the changes that are being made to each file, including attribute changes.
# --no-whole-file Sync only modified parts of big files.
# -r This tells rsync to copy directories recursively.
# --delete This tells rsync to delete extraneous files from the receiving side (ones that aren't on the sending side), but only for the directories that are being synchronized.
# --size-only Skip files that match in size.
# --links Duplicate all symlinks.

rsync --dry-run --modify-window=5 --stats --times --itemize-changes --no-whole-file -r --delete --size-only --links "$DIR_SOURCE_SYNC" "$DIR_DEST_SYNC"

Może jakaś optymalizacja rsync jest jeszcze możliwa, musze spojrzeć na to jeszcze raz.


Ale - podobnie jak kryptografii, nie rób własnej metody backupu. Używaj sprawdzonych rozwiązań np. borg

@diogene: Staram się aby nie przekombinować, ma być najmożliwiej proste, z wykorzystaniem sprawdzonych, prostych narzędzi, ale też najmożliwiej automatyczne.

Nie znam borg, sprawdze temat.
M.....f 2021-07-19 19:03:51 +0
@ce029c47: to ze studiow ?
ce029c47 [OP] 2021-07-19 19:11:43 +0
@MyNameIsJefff: To w ramch dbania o własne dane w przypadku ich utraty a zarazem aby mieć je zawsze szybko dostępne "w kieszeni" w przypadku kiepskiego dostępu do internetu.