Dlaczego rsync pomija główny katalog?

47

Próbuję użyć rync lokalnie (na komputerze z systemem Windows) na zdalnym serwerze (my osx box) w celu przetestowania skryptu kompilacji zdalnej instalacji. Zrobiłem rsync zanim w porządku między 2 serwerami Linux, ale mam teraz problemy. Oto wynik:

$ rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

skipping directory /Library/WebServer/sites/staging/app1/.

sent 8 bytes  received 13 bytes  3.82 bytes/sec
total size is 0  speedup is 0.00

$ 

lub

$ rsync -avz -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

receiving file list ... done
./

sent 26 bytes  received 68 bytes  17.09 bytes/sec
total size is 0  speedup is 0.00


$ 

zdalny katalog app1 jest pusty, podczas gdy lokalny katalog eksportu zawiera 4 podkatalogi, a następnie kilka plików w każdym z nich

Chrisan
źródło

Odpowiedzi:

64
rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

Nie dałeś żadnych opcji, aby przełączyć go w tryb rekurencyjny, taki jak -rlub -a.

zdalny katalog app1 jest pusty, podczas gdy lokalny katalog eksportu zawiera 4 podkatalogi, a następnie kilka plików w każdym z nich

Czy masz tutaj opcje do tyłu? Polecenie powinno być rsync [source] [DESTINATION]. Jeśli katalog app1 jest pusty i próbujesz skopiować pusty katalog, nie zrobisz nic użytecznego.

Być może potrzebujesz czegoś takiego?

rsync -avz ./export/  [email protected]:/Library/WebServer/sites/staging/app1/ 

Również:

  • Prawie zawsze powinieneś dołączyć ukośnik do katalogów za pomocą rsync.
  • Prawie każda wersja rsync wydana w ciągu ostatnich 5-10 lat domyślnie używa ssh ma zdalny transport. Prawdopodobnie nie musisz określać -e ssh.
Zoredache
źródło
2
Wow ... to dość zawstydzające. Tak, pomieszałem źródło i przeznaczenie ...
Chris
1
+1 za „Prawie zawsze powinieneś dołączyć ukośnik do katalogów z rsync”.
Walrus the Cat
Na Macu wydaje się, że używa flagi -r, ale w systemie Linux zawsze używam -R („capital R”)
Adam F
@Zoredache Dlaczego jest prawie?
Nikhil
3

Próbuję włączyć wbudowaną zdolność rsync do wyświetlania pliku dziennika, dodając następującą opcję do polecenia.

--log-file=/path/to/log.file

Możesz także zwiększyć gadatliwość, dodając dodatkową -vopcję, np. -avvzZgodnie ze stroną podręcznika „Dwie opcje -v podadzą informacje o tym, które pliki są pomijane, i nieco więcej informacji na końcu”.

Jeśli te zwracane informacje nie pomogą zidentyfikować problemu, edytuj pytanie i dodaj dodatkowe dane wyjściowe.

Bryan
źródło