kopia plików przez rdiff-backup |
kopia plików przez rdiff-backup |
24.11.2016, 14:43:24
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Rsync miał opcje -delete która kasowała pliki na serwerze zdalnym jeśli nie było ich w źródle. Czy rdiff-backup ma podobną właściwość? Zauważyłem pewien zgrzyt i ilość plików się nie zgadza, jest ich więcej na serwerze zapasowym niż w źródle i zastanawiam się jak ugryźć temat. Robienie nowej rewizji nie za bardzo mi się uśmiecha...
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
24.11.2016, 21:11:06
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
A może powiedz co chcesz osiągnąć? I czemu nie rsync?
|
|
|
25.11.2016, 09:51:00
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Rsync nie robi kopii przyrostowych. A to jest potrzebne przy wysylaniu plikow ktore sa generowane z calego dnia, a odzyskanie musi byc mozliwe np z konkretnej godziny. Ilość plikow jest duża, 2TB.
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
25.11.2016, 10:31:23
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
A może to https://blog.piotrows.pl/rsync-przyrostowy-backup-v-1-1
Tylko jeśli robisz backup godzinny to musiałbyś sobie lekko zmodyfikować skrypt bo on robi backupy dzienne. |
|
|
25.11.2016, 11:00:01
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
To się nie sprawdzi i nie nazwałbym tego backupem przyrostowym, nie jeśli bierzemy dużą ilość plików. Twój skrypt tworzy i wysyła zawsze pełną kopię, a nie różnicę
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
25.11.2016, 11:23:31
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
to źle patrzyłeś Skrypt pobiera tylko te pliki które sie zmieniły, a te które nie zostają podlinkowane.
|
|
|
25.11.2016, 11:45:12
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Tak zgadza się, ale to działa w obrębie jednego dnia. Wyślij pliki z folderu A do folderu B. Dostaniesz folder z datą 2016-11-25, teraz jednak, dnia kolejnego całość zostanie wysłana ponownie do folderu 2016-11-26, a nie tylko to co zostało zmienione i to jest ta różnica.
edycja: Przyrost jest tutaj złudny. Raz że rsync nie ma takiej opcji, a dwa, zmiana nazwy folderu robi zawszę pełną kopię i sprawdza różnicę (odpal to z --progress). Mając 2TB danych i kopia musi być co godzinę, strzeliłbym sobie tym w kolano (samo wysyłanie pełnej kopii zajmuje więcej niż godzina), chyba że masz pożyczyć dysk taki ze 10 YB Ten post edytował !*! 25.11.2016, 12:37:42 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
25.11.2016, 20:47:34
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
o ile masz możliwość może po testuj lokalnie z linux'owym systemem plików:
2014/03/22 Btrfs Tips: Doing Fast Incremental Backups With Btrfs Send and Receive Incremental Backup -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
26.11.2016, 10:00:36
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Tak każdego dnia masz "pełny backup" i jest to przyrostowa wersja. Fakt że w prawdziwej przyrostowej wersji masz tylko zmienione pliki a tutaj masz całą zawartość.
Ale zobacz benefity tego rozwiązania. Tworząc normalne kopie przyrostowe aby odtworzyć backum musisz wgrać pełną kopię a następnie wszystkie incrementale. Zajmuje Ci to czas. W moim rozwiązaniu po prostu wgrywasz kopię z danego dnia/godziny i koniec. Nic więcej nie musisz robić. Możesz mi wyjaśnić dlaczego mój skrypt Ci się nie sprawdzi? Bo uważam że jednak się sprawdzi i to znakomicie. Bo o ile pliki nie są zmienione to ich po prostu nie pobiera, a dociąga tylko nowe. Dodatkowo robiony jest hard-link na nie zmienionych plikach co za tym idzie oszczędzasz miejsce. Defacto różnica między incrementalem a moim skryptem jest taka że tam dostajesz Tylko zmienione pliki, a u mnie masz pełną kopię. |
|
|
26.11.2016, 14:12:48
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
@Pyton_000 - nie wykonujesz tym skryptem kopii przyrostowej, tylko różnicową. W jakim celu mam wysyłać każdego dnia, co godzinę całą kopię? To jest technicznie nie realne, jak również czasowo. W kopii przyrostowej pełna kopia zawsze jest na miejscu (od początku, podobnie jak w różnicowej), a pliki są dogrywane i masz wykaz różnych wersji. Wybierasz ostatnią lub z określonego dnia i czekasz aż się całość sama ogarnie, przecież z wykasowaniem listy różnic, nie kasujesz plików jakie zostały wgrane, one nadal tam są, tracisz tylko możliwość odtworzenia z danego okresu, ale "now" odtworzy i tak 1:1 od początku
Cytat Możesz mi wyjaśnić dlaczego mój skrypt Ci się nie sprawdzi? Bo uważam że jednak się sprawdzi i to znakomicie. Bo o ile pliki nie są zmienione to ich po prostu nie pobiera, a dociąga tylko nowe. Dodatkowo robiony jest hard-link na nie zmienionych plikach co za tym idzie oszczędzasz miejsce. Sam sobie odpowiedziałeś: Cytat Defacto różnica między incrementalem a moim skryptem jest taka że tam dostajesz Tylko zmienione pliki, a u mnie masz pełną kopię. Przemyśl to jeszcze raz. Robisz kopię plików z katalogu A, który ma 2TB danych, folder z kopią nazywa się 2016-11-26, co godzinę dogrywane są nowe pliki które powstały w folderze A. I tak się dzieje przez dajmy na to tydzień. Każdy dzień zrobił pełną kopię katalogu A, co daje nam 14TB danych. Już widzisz, że to nie ma sensu? Gdzie przy kopii przyrostowej z folderu A miałbym dorzucone tylko np 700MB dziennie. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
26.11.2016, 16:11:00
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
No przecież Ci tłumaczę że nie będziesz miał 14TB danych, bo hard-linki załatwiają ten problem. One nie zajmują miejsca na dysku (no może poza nazwą). Przykład:
Kod # lpiotrowski /tmp/test [15:45:04] → dd if=/dev/zero of=regular count=10240 bs=10240 10240+0 przeczytanych recordów 10240+0 zapisanych recordów skopiowane 104857600 bajtów (105 MB), 0,0892433 s, 1,2 GB/s # lpiotrowski /tmp/test [15:45:17] → ls -las razem 102436 4 drwxrwxr-x 2 lpiotrowski lpiotrowski 4096 lis 26 15:45 . 32 drwxrwxrwt 14 root root 32768 lis 26 15:42 .. 102400 -rw-rw-r-- 1 lpiotrowski lpiotrowski 104857600 lis 26 15:45 regular # lpiotrowski /tmp/test [15:45:24] → du -ksh . 101M . # lpiotrowski /tmp/test [15:45:30] → ln regular hard # lpiotrowski /tmp/test [15:45:36] → ls -las razem 204844 4 drwxrwxr-x 2 lpiotrowski lpiotrowski 4096 lis 26 15:45 . 32 drwxrwxrwt 14 root root 32768 lis 26 15:42 .. 102404 -rw-rw-r-- 2 lpiotrowski lpiotrowski 104857600 lis 26 15:45 hard 102404 -rw-rw-r-- 2 lpiotrowski lpiotrowski 104857600 lis 26 15:45 regular # lpiotrowski /tmp/test [15:45:38] → du -ksh . 101M . Jak widzisz Hard-linki nie zajmują na dysku miejsca. I to jest właśnie magia tego. Masz codzienne backupy w pełni, ale zajmują miejsce tak jakbyś pobierał tylko nowe pliki. Kolejny przykład z moich kopii z użyciem tego skryptu: Kod → sudo du -chs 2016-04-08 2016-04-09 8,0G 2016-04-08 831M 2016-04-09 Jak widzisz, realnie zostało pobrane ~830MB (część tego to jest miejsce zarezerowane na nazwy plików). Przetestuj sobie mój skrypt 2 dni i wtedy wyraź opinię |
|
|
26.11.2016, 16:51:46
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Przykład działania Twojego skryptu:
Dzień 1: Cytat ./kopia.sh sending incremental file list created directory ./b/2016-11-26 a/ a/plik1 8 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) a/plik2 20 100% 19.53kB/s 0:00:00 (xfr#2, to-chk=1/4) a/plik3 70 100% 68.36kB/s 0:00:00 (xfr#3, to-chk=0/4) Dzień 2: Cytat ./kopia.sh Found newst backup: 2016-11-26 sending incremental file list created directory ./b/2016-11-27 a/ a/plik1 8 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) a/plik2 20 100% 19.53kB/s 0:00:00 (xfr#2, to-chk=1/4) a/plik3 70 100% 68.36kB/s 0:00:00 (xfr#3, to-chk=0/4) Dzień 3: Cytat ./kopia.sh Found newst backup: 2016-11-27 sending incremental file list created directory ./b/2016-11-28 a/ a/plik1 8 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) a/plik2 20 100% 19.53kB/s 0:00:00 (xfr#2, to-chk=1/4) a/plik3 70 100% 68.36kB/s 0:00:00 (xfr#3, to-chk=0/4) Teraz przechodzimy do katalogu B gdzie leżą kopie z tych dni: Cytat du -h * 16K 2016-11-26/a 20K 2016-11-26 16K 2016-11-27/a 20K 2016-11-27 16K 2016-11-28/a 20K 2016-11-28 Cytat -a, --archive archive mode; same as -rlptgoD (no -H) -H, --hard-links preserve hard links To wyjaśnij mi skąd te dane i czemu są wysyłane przy każdym uruchomieniu, przecież istnieją i nie są zmieniane -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
26.11.2016, 17:25:16
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Coś tu ściemniasz....
Kod root@lpiotrowski:/tmp/test# ./kopia.sh sudo rsync -av --progress --exclude=/dev --exclude=/proc --exclude=/tmp --exclude=/sys --link-dest=/tmp/test/2016-11-26 root@vpstech.ovh:/test/ /tmp/test/2016-11-27 receiving incremental file list created directory /tmp/test/2016-11-27 ./ plik4 104,857,600 100% 3.15MB/s 0:00:31 (xfr#1, to-chk=0/5) sent 87 bytes received 104,883,377 bytes 3,227,183.51 bytes/sec total size is 104,857,643 speedup is 1.00 root@lpiotrowski:/tmp/test# ./kopia.sh sudo rsync -av --progress --exclude=/dev --exclude=/proc --exclude=/tmp --exclude=/sys --link-dest=/tmp/test/2016-11-27 root@vpstech.ovh:/test/ /tmp/test/2016-11-28 receiving incremental file list created directory /tmp/test/2016-11-28 sent 61 bytes received 135 bytes 392.00 bytes/sec total size is 104,857,643 speedup is 534,987.97 root@lpiotrowski:/tmp/test# A w "BACKUP_DIR" podałeś ścieżkę względną czy bezwzględną? Bo ma być bezwzględna. |
|
|
26.11.2016, 18:33:37
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Prawda, ścieżka miała znaczenie, jednak coś mi w tym nie pasuje, muszę to przetestować bo coś tu z tym jest nie tak
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
26.11.2016, 18:39:32
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Hahaha No tak bo byś musiał mi przyznać rację Dobra spoko, przetestuj i powiedz jak działa.
|
|
|
1.12.2016, 12:30:06
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Przyznaje Ci racje, że winna była ścieżka i skrypt działa robiąc odpowiednią kopię, jednak... odczekajmy 5min...
---5 minut później--- Cholera miałem nadzieję że forum się zawali po przyznaniu Ci racji... Wracając jednak do tematu, w moim przypadku działa to z błędami podobnie jak rdiff i nie mam pomysłu jak to rozwiązać. Po kilku dniach testów pojawiły się w robionej kopii ze źródła dodatkowe pliki, logi niczego nie wskazują, jednak gdy odpaliłem rdiff ręcznie wyskakuje informacja o Cytat UpdateError <plik> File changed from regular file before signature z tego co czytałem pliki z takim błędem są "puste" co średnio wpływa na sens robienia kopii
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
1.12.2016, 14:48:45
Post
#17
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Co to znaczy pliki nie wskazujące niczego?
|
|
|
1.12.2016, 16:07:59
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Nie ma żadnej informacji w logach o błędach w przesyłaniu czy złych sumach kontrolnych itp
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
Wersja Lo-Fi | Aktualny czas: 28.03.2024 - 19:01 |