Destio небольшой блог

Синхронизация с помощью rsync

Rsync это удобный инструмент для синхронизации папок, как просто на разных дисках, так и с удаленным сервером, через ssh.

Синхронизировать папки foo1 и foo2, показывая ход работы:

rsync --progress -logthvr --delete-after /home/user/foo1 /mnt/backup/foo2

Если задать исходную папку как /* то скрытые файлы и папки синхронизироваться не будут
Синхронизировать через ssh также легко:

rsync -e ssh --progress -logthvr --delete-after ~/foo1/ user@server:~/foo2

Если ssh на нестандатном порте (XXX), то  -e "ssh -pXXX"

Параметры:

--delete-after несовпавшие файлы будут удаляться после процесса копирования, это самый быстрый способ удаления.
--delete-before если места для синхронизации не хватит, то можно удалить файлы сначала.
--exclude=PATTERN указывает на шаблон, попавшее под который синхронизировано не будет, например --exclude='*.avi'
--exclude-from=FILE где FILE это путь к файлу, содержащему список шаблонов для исключения из синхронизации

При синхронизации на NTFS выводятся все папки

Если целевая папка копирования на NTFS разделе, то Rsync выводит список всех папок, даже если они не менялись. Неудобно, если папок много. Частично решается, если добавить к выводу | grep -E '^deleting|[^/]$|^$', что уберет вывод папок, а заодно и прогрессбар копирования, к сожалению.

Ярлыки: ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.