zmień katalog na dysk sieciowy w Cygwin


10

W domu mam nowy router bezprzewodowy i mam do niego podłączony dysk 3 TB. Chciałbym napisać skrypt cygwin, który skopiuje zmienione pliki na zewnętrzny HD.

Na początek, jak przejść cdna dysk twardy? W Eksploratorze plików systemu Windows po prostu piszę //192.168.1.1i zabiera mnie na dysk sieciowy. Jednak po cd //192.168.1.1wpisaniu nie działa. Jak mogę zmienić katalog na HD?

Po drugie, czy ktoś ma porady, jak napisać dobry skrypt kopii zapasowej, aby skopiować niektóre katalogi (rekurencyjnie), jeśli uległy zmianie?

Odpowiedzi:


15

Możesz spojrzeć na zamontowane dyski w widoku środowiska cygwin UNIX na podstawowy system operacyjny Windows, patrząc /cygdrive. Wykonaj dfpolecenie w powłoce cygwin (zwykle bash), aby zobaczyć, gdzie zamontowane są dyski. Oto dokumentacja, gdzie można znaleźć zamontowane dyski . Na przykład, aby przejść na dysk sieciowy zamontowany jako Windows f:\, cdnależy /cygdrive/f:

$ cd /cydrive/f

Oto przykład:

  1. OS X Mavericks (UNIX) ma zamontowany dysk o pojemności 3 TB jako /Volumes/Time Machine
  2. Wirtualny system Windows XP (VM) działa w systemie OS X i widzi /Volumes/Time MachinejakoX:\
  3. Cygwin działa na maszynie wirtualnej XP i widzi /Volumes/Time Machinejako, /cygdrive/xa nawetx:

$ ls x:

Oto zdjęcie:

wprowadź opis zdjęcia tutaj

Jeśli zewnętrzny HD nie jest obecnie zamontowany na hoście Windows i jest już zmapowany do punktu montowania w /cygdrive, może być konieczne samodzielne zamontowanie udziału sieciowego. Spójrz na implementację mountpolecenia UNIX przez cygwin .

Inny sposób przeglądania folderu sieciowego jest zgodny z zastosowaną składnią - mój serwer OS X eksportuje mój folder logowania OS X, whmcclos, jako folder współdzielony SMB. Mogę ustawić mój bieżący katalog roboczy na ten folder współdzielony z cygwin na mojej maszynie wirtualnej z systemem Windows XP, działającej w systemie OS X, w następujący sposób:

$ cd //192.168.0.2/whmcclos

W ten sposób nie muszę nawet instalować folderu jako litery dysku, aby wyświetlić go z poziomu programu cygwin.

W przypadku tworzenia kopii zapasowych plików, które uległy zmianie, rsyncbędzie rekurencyjnie tworzyć kopie zapasowe tylko tych plików w drzewie katalogów, które uległy zmianie - oblicza minimalny zestaw kopii zapasowych, tworzy tylko kopie zapasowe zmian i ma mnóstwo opcji, w tym kopiowanie na dyski sieciowe i bycie może być używany z szyfrowaniem przez ssh. Oto kilka wskazówek dotyczących korzystania rsyncz Cygwina. Oto polecenie kompresji i archiwizacji (rekurencji) źródła na dysku zamontowanym jako c:\ i umieszczone w celu na dysku zamontowanym jak f:\na hoście Windows leżącym u podstaw programu cygwin.

$ rsync -avz /cygdrive/c/path/to/source /cygdrive/f/path/to/target

Jeśli potrzebujesz dalszej pomocy, zostaw komentarz.


Dzięki, wciąż mam pytanie - kiedy użyłem -avz, nie poprawnie kopiuje uprawnień. I dostać rsync: failed to set permissions on "<path>": Permission denied (13). Masz pomysł, jak to naprawić?
drjrm3

Brzmi jak coś, co widziałem kiedyś z uprawnieniami, szczególnie z uprawnieniami ACL. Sprawdź uprawnienia, w tym listę ACL, /bin/ls -le /path/to/sourcea także /bin/ls -le /path/to/targetsprawdź nie tylko różne uprawnienia do folderów, ale także uprawnienia ACL i do tych folderów. Zobacz man lsi -leprzełączniki oraz man chmodi +ai -aprzełączniki. Jestem w 99% pewien, że ma to coś wspólnego z uprawnieniami. Zacznij od rsynchronizacji podzbioru drzewa źródłowego, aby powiedzieć, /tmpgdzie wiesz, że masz uprawnienia do zapisu i zobacz, jak to działa.
Billy McCloskey

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.