Почему rsync пропускает основной каталог?

47

Я пытаюсь использовать rync локально (на компьютере с Windows) для удаленного сервера (мой блок osx) для тестирования сценария удаленного развертывания. Я сделал rsync раньше просто отлично между двумя Linux-серверами, но сейчас у меня проблемы. Вот вывод:

$ rsync -v -e ssh myuser@10.86.83.11:/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

$ 

или же

$ rsync -avz -e ssh myuser@10.86.83.11:/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


$ 

каталог удаленного приложения app1 пуст, в то время как локальный каталог экспорта имеет 4 подкаталога, а затем в каждом из них находится группа файлов.

chrisan
источник

Ответы:

64
rsync -v -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

Вы не дали ему никаких опций, чтобы перевести его в рекурсивный режим, например -rили -a.

каталог удаленного приложения app1 пуст, в то время как локальный каталог экспорта имеет 4 подкаталога, а затем в каждом из них находится группа файлов.

У вас есть варианты назад здесь? Команда должна быть rsync [source] [DESTINATION]. Если каталог app1 пуст и вы пытаетесь скопировать пустой каталог, вы не собираетесь делать ничего полезного.

Возможно, вам нужно что-то подобное вместо этого?

rsync -avz ./export/  myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ 

Также:

  • Вы почти всегда должны включать косую черту в каталогах с помощью rsync.
  • Почти каждая версия rsync, выпущенная за последние 5-10 лет, по умолчанию использует ssh с удаленным транспортом. Вы, вероятно, не должны указывать -e ssh.
Zoredache
источник
2
Вау .. это довольно неловко. Да, я перепутал источник и Dest ...
Крисан
1
+1 за «Вы почти всегда должны включать косую черту в каталогах с rsync».
Кошка Морж
На Mac, кажется, используется флаг -r, но в Linux я всегда использую -R ("прописная буква R")
Адам Ф
@Zoredache Почему это почти?
Нихил
3

Попробуйте включить встроенную возможность rsync для вывода файла журнала, добавив следующую опцию в вашу команду.

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

Вы также можете увеличить детализацию, добавив дополнительную -vопцию, например -avvz, в соответствии со страницей руководства: «Две опции -v дадут вам информацию о том, какие файлы пропускаются, и немного больше информации в конце».

Если эта информация, которая возвращается, не помогает определить проблему, отредактируйте ваш вопрос и добавьте дополнительный вывод.

Bryan
источник