Как я могу rsync папки, начинающиеся с точки? - PullRequest
2 голосов
/ 06 ноября 2011

Я пытаюсь синхронизировать каталог maildir, который в некоторых папках в этом каталоге maildir содержит каталог, начинающийся с "точки"

.Archive/
.Sent Items/

Я попытался использовать следующую команду

$ rsync -pogutr --exclude="." --exclude=".." .*  /home/folder1/mail/domain/user1/ /home/folder2/mail/domain --progress
$ rsync -pogutr --exclude="../" /home/folder1/mail/domain/user1/.*  /home/folder2/mail/domain/ --progress
$ rsync -pogutr --include=".*" /home/folder1/mail/domain/user1  /home/folder2/mail/domain/ --progress

Все они будут синхронизировать другие подкаталоги в пределах /home/folder1/mail/domain/ в каталог /home/folder2/mail/domain/user1/.

Например, если /home/folder1/mail/domain/ содержит подкаталоги user1, user2 и user3.Тогда все содержимое user1, user2 и user3 будет в каталоге /home/folder2/mail/domain/user1/

Ответы [ 3 ]

0 голосов
/ 05 октября 2015

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

$ rsync --recursive --verbose maildir/ maildir-backup
sending incremental file list
created directory maildir-backup
./
.Archive/
.Archive/1
.Archive/2
.Archive/3
.Sent Items/
.Sent Items/bar
.Sent Items/baz
.Sent Items/foo

sent 481 bytes  received 182 bytes  1,326.00 bytes/sec
total size is 0  speedup is 0.00

Я даже попробовал дополнительные флаги, которые вы использовали (сохранить владельца, группу, время, разрешения и т. Д.)

$ rsync -pogutr --verbose maildir/ maildir-backup
sending incremental file list
created directory maildir-backup
./
.Archive/
.Archive/1
.Archive/2
.Archive/3
.Sent Items/
.Sent Items/bar
.Sent Items/baz
.Sent Items/foo

sent 497 bytes  received 182 bytes  452.67 bytes/sec
total size is 0  speedup is 0.00

Вы просто не хотите или не должны исключать «эту» папку или родительский элемент. Они не включены ни в какие пути.

--exclude="." --exclude=".."
0 голосов
/ 02 марта 2018

используйте 2 команды rsync: 1 обычную и 1 для точечных папок. И укажите точку и избегайте ее. Я использовал его для переноса в Docker-Poste и запустил на своем хосте Docker:

rsync -e ssh -v -r -u root@10.10.0.7:/home/benny/Maildir/* /mnt/user/docker/poste/data/domains/example.com/benny/Maildir/
rsync -e ssh -v -r -u root@10.10.0.7:/home/benny/Maildir/\.* /mnt/user/docker/poste/data/domains/example.com/benny/Maildir/
0 голосов
/ 06 ноября 2011

Попробуйте использовать unison вместо rsync. Кроме того, он будет синхронизироваться быстрее.

...