Я пытаюсь выполнить rsync каталог A на server1 с каталогом B на server2.
Находясь в каталоге A сервера 1, я выполнил следующие команды.
rsync -av * server2::sharename/B
но что интересно, он синхронизирует все файлы и каталоги, кроме .htaccess или любого скрытого файла в каталоге A. Любые скрытые файлы в подкаталогах синхронизируются.
Я также пробовал следующую команду:
rsync -av --include=".htaccess" * server2::sharename/B
но результаты те же.
Любые идеи, почему скрытые файлы каталога A не синхронизируются и как это исправить. Я работаю как пользователь root.
Благодарность
Ответы:
Это связано с тем, что
*
по умолчанию оно распространяется на все файлы в текущем рабочем каталоге, кроме файлов, имена которых начинаются с точки. Таким образом,rsync
никогда не принимает эти файлы в качестве аргументов.Вы можете передать
.
обозначение текущего рабочего каталога вrsync
:Этот способ
rsync
будет искать файлы для передачи в текущем рабочем каталоге, а не в том, что*
расширяется.В качестве альтернативы вы можете использовать следующую команду, чтобы
*
развернуть все файлы, включая те, которые начинаются с точки:shopt -s dotglob
См. Также man-страницу shopt .
источник
rsync -avz user@domain.com:/remote/path/. /destination/path
выполняет свою работуДля тех , кто только пытается каталоги синхронизации между серверами (включая все скрытые файлы) - например, синхронизацию
somedirA
наsource-server
кsomedirB
на сервере назначения - попробуйте это :Обратите внимание на косые черты в конце обоих путей. Любой другой синтаксис может привести к неожиданным результатам!
Кроме того, для меня проще всего выполнять
rsync
команды с целевого сервера, потому что легче убедиться, что у меня есть надлежащий доступ для записи (т. Е. Мне может потребоваться добавитьsudo
в команду выше).Наверное, само собой разумеется, но очевидно, что вашему удаленному пользователю также нужен доступ для чтения
somedirA
на исходном сервере. :)источник
.htaccess
файл синхронизирован с флагом -e ?-e ssh
указывает способ подключения.Я была такая же проблема.
Для меня, когда я выполнил следующую команду, скрытые файлы не были синхронизированы
Но когда я добавил косую черту в конце путей, скрытые файлы были синхронизированы.
Обратите внимание на косые черты в конце путей , поскольку Брайан Лейси сказал, что косые черты - это ключ. У меня нет репутации, чтобы комментировать его пост, иначе я бы это сделал.
источник
shopt -s dotglob
в свой скрипт перед rsyncЯ думаю, проблема связана с расширением подстановочных знаков оболочки. Используйте. вместо звезды.
Рассмотрим следующий пример содержимого каталога
Расширение подстановочного знака оболочки переводит список аргументов, который получает программа rsync.
в
до того, как команда начнет выполняться.
источник
*
Скажите rsynch , чтобы не синхронизировать скрытые файлы. Вы не должны это пропускать.источник