Program rsync - objaśnienie opcji x

Witam.

Chcę skopiować sobie całą zawartość katalogu domowego na zewnętrzny dysk twardy (USB) w sposób jak najbardziej zbliżony do oryginału (dowiązania, atrybuty).

Chciałbym użyć znalezionego w internecie polecenia:

rsync -avx

rsync -avx /xxx/katalog archiwizowany /xxx/miejsce docelowe 

Jednak mam obawy odnośnie opcji: x

-x, --one-file-system
              This tells rsync to avoid crossing a filesystem boundary when recursing. This does not limit the user’s ability to specify
              items to copy from multiple filesystems, just rsync’s recursion through the hierarchy of each directory that the user speci‐
              fied, and also the analogous recursion on the receiving side during deletion. Also keep in mind that rsync treats a "bind"
              mount to the same device as being on the same filesystem.

Prosiłbym aby mi ktoś “po chłopsku” wytłumaczył co daje ta opcja i co ewentualnie tracę gdybym jej nie użył w poleceniu.

 

Pozdrawiam.

saturno

 

rsync można użyć, ale to raczej program do synchronizacji niż kopiowania. Dlaczego nie użyjesz zwykłego “cp -pdR”? W dodatku musisz uważać na jaki system plików kopiujesz te pliki bo nie każdy jest w stanie przechowywać wszystkie atrybuty, np skopiowanie plików z linuksowej partycji na dysk ntfs czy fat32 obetnie większość atrybutów. W takiej sytuacji lepiej tarować te pliki “tar -cpf”, a jeszcze lepiej połączyć to z kompresja np. xz “tar -cJpf”

Przełącznik -x o który pytasz podejrzewam że działa tak jak przy cp czyli przy opcji -R rekursywne kopiowanie nie pozwala wyjść poza obszar jednej partycji (jeśli np chcesz skopiować wszystko z katalogu a, a w katalogu a jest zamontowana inna partycja w folderze b)

 

Wolałbym mieć pewność nie tylko podejrzenia :-D .

Odnośnie: cp próbowałem polecenia:

cp -av

Wywalało to jakieś błędy.

Zatrzymałem: Ctrl + C

Później próbowałem usunąć te błędnie skopiowane pliki. rm nie dawało rady, a mc tak skutecznie się zamroziło że nie dało się go zabić nawet z roota i komputer nie chciał się nawet wyłączyć.

Jakimi błędami sypało cp? Może masz jakieś błędy systemu plików? Uszkodzony dysk? Może próbowałeś skopiować nie swoje pliki (np. zwykłym użytkownikiem pliki roota)? Może kopiowałeś pliki zawierające nieprawidłowe nazwy lub atrybuty dla docelowego systemu plików? Za dużo niewiadomych :wink:

W opisie przełącznika -x jest mniej więcej to co pisałem, szybki test może rozwiać twoje wątpliwości, ale moje podejrzenie jest bliskie pewności jeśli to cię uspokoi :smiley:

Zawartości błędów nie mam, bo puszczałem to z przełącznikiem: -v więc zginęło to wśród tysięcy innych komunikatów wypluwanych przez konsolę (a że były błędy dowiedziałem z systemowego powiadamiania gdzie nie dało się ich skopiować).

Dysk nowy świeżo po formacie więc wątpliwe żeby był uszkodzony (gnome-disk-utility smart jest poprawny).

Pliki kopiowałem spod roota.

Odnośnie nieprawidłowych nazw to: cp i rsync z przełącznikiem: -a kopiują je bez najmniejszego problemu.

Błędu chcę odtwarzać bo za którymś razem dysk może się w końcu uszkodzić.

 

Wymyśliłem sobie że może z: cp są jakieś problemy z transferem ( w końcu to dysk na USB ), bardzo dużo plików i długo to trwa.

rsync kopiuje pliki wolniej ale jak się domyślam nie powinno być problemów z przerwaniem i wznowieniem kopiowania.

 

edycja:

 

 

Byłbym wdzięczny gdybyś go przeprowadził, bo ja i tak nie będę wiedział na co zwrócić uwagę.

 

Ps.: W międzyczasie puściłem: cp -a (bez v) i poszło bez błędów. jednak są błędy

Jednak na przyszłość chciałbym mieć w pełni niezawodny sposób kopiowania.

No to wracając do tematu przełącznik -x zapobiega przechodzeniu do innego systemu plików który mógłby być zamontowany jakimś podkatalogu lokalizacji którą chcesz kopiować rekursywnie.

Czyli po wydaniu polecania skopiowania całego drzewa / które jest zamontowane w sda1, a /home w sda2 to zostanie przekopiowane całe drzewo / z pominięciem plików z sda2 czyli w tym przypadku /home. Jaśniej nie potrafię :wink:

Zgoda, teraz już rozumiem.

Zamontowałem płytę CD i przeprowadziłem test:

rsync -avx /media /home/tom/test
sending incremental file list
media/
media/cdrom -> cdrom0
media/floppy -> floppy0
media/cdrom0/
media/cdrom1/
media/floppy0/

sent 163 bytes received 34 bytes 394.00 bytes/sec
total size is 13 speedup is 0.07

Skasowałem: /home/tom/test/media

rsync -av /media /home/tom/test
sending incremental file list
media/
media/cdrom -> cdrom0
media/floppy -> floppy0
media/cdrom0/
media/cdrom1/
media/cdrom1/autorun.exe
media/cdrom1/autorun.ico
media/cdrom1/autorun.inf
media/cdrom1/rundxsetup.exe
media/cdrom1/setup.exe
media/cdrom1/DirectX9/
media/cdrom1/DirectX9/BDA.cab
media/cdrom1/DirectX9/BDANT.cab
media/cdrom1/DirectX9/BDAXP.cab
media/cdrom1/DirectX9/DSETUP.dll
media/cdrom1/DirectX9/DXSETUP.exe
media/cdrom1/DirectX9/DirectX.cab
media/cdrom1/DirectX9/ManagedDX.CAB
media/cdrom1/DirectX9/dsetup32.dll
media/cdrom1/DirectX9/dxnt.cab
media/floppy0/

sent 385452793 bytes received 304 bytes 26582972.21 bytes/sec
total size is 385404714 speedup is 1.00

Jak widać teraz skopiowała się również zawartość zamontowanej płyty

 

Dziękuję serdecznie za pomoc.

 

Pozdrawiam.

saturno

Tak doświadczony użytkownik pyta o takie rzeczy? Wystarczy zajrzeć do Wikipedii, aby dowiedzieć się, że

Jeśli chodzi o cp, to spróbuj cp -prfv.

 

Czasem najciemniej pod latarnią.

Ja szukałem innym torem: https://www.google.pl/search?q=rsync+manual&oq=rsync+manual&aqs=chrome…69i57j0l5.11429j0j8&sourceid=chrome&es_sm=0&ie=UTF-8#q=rsync+manual&tbs=lr:lang_1pl&lr=lang_pl

Gdzie każda odpowiedź to co innego, a  wolałem się upewnić przed sformatowaniem całego dysku!

Koleina sprawa to stres , kupiłem nowy dysk a on działał tak jak by miał za chwilę całkiem paść!

Koleina to to że ja mam pewne doświadczenie lecz trudno je mierzyć, bo oparte jest tylko na własnych doświadczeniach gdzie nawet zwykłego manuala (zerowa znajomość angielskiego) mam trudność ogarnąć bo brakuje mi pewnie sporo podstaw (brak lekcji informatyki).

Pomagam często innym użytkownikom lecz w większości nie opiera się to na mojej wiedzy lecz na wiadomościach znalezionych w internecie lub przeprowadzonych na szybko doświadczeniach.

 

Odnośnie: cp to jednak wolę: rsync, bo jeśli wystąpi jakikolwiek błąd to zostaje to wypisane na wyjściu.

Przy: cp miałem rzekomo skopiowane dane, a jedyne co mnie zaniepokoiło to komunikaty systemowe (które co niektórzy wyłączają!).

Przy przeprowadzaniu mnóstwa prób komunikaty nie zawsze się pojawiały, a jedynym objawem były błędy w logach systemowych.

Boję się nawet pomyśleć co by było gdybym to zignorował (w konsoli nie było żadnych błędów) i sformatował dysk.

==================================================================

Odnośnie samego dysku i uszkadzania danych, to się wyjaśniło (był problem z zasilaniem).

Dysk w pełni prawidłowo działa tylko w którymś z dwóch gniazdach USB (te na “śledziu”).

 

Jeszcze raz dziękuję wszystkim za pomoc.

 

Pozdrawiam.

saturno

Dlatego podałem Ci z takimi opcjami.

-p - kopiuje z zachowaniem uprawnień;

-r - kopiuje rekursywnie;

-v - tryb gadatliwy, tj. wyświetla wszystko co robi cp;

-f - wymuszenie.

Wolę używać: rsync, bo bardzo dobrze działa wznawianie kopiowania (kopiuje tylko pliki których nie ma), a synchronizowanie to już sprawa super (szybkość działania).

Zrobiłem sobie nawet ściągawkę:

kopiowanie całego katalogu:
rsync --progress -axv /xxx/katalog /xxx/miejsce docelowe

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Synchronizacja kopiowanej zawartości:
OSTROŻNIE - usuwa pliki w katalogu docelowym jeśli brak
ich w katalogu źródłowym.

rsync --progress --delete -axv /xxx/katalog /xxx/miejsce docelowe