16.2. Применение rsync для локальной пересылки и синхронизации файлов

Проблема
Требуется организовать синхронизацию файловых деревьев на рабочей станции.
Ваша рабочая станция используется для создания веб-каталогов, графических
галерей и других сложных файловых структур. В рабочем каталоге файлы редак тируются, а затем копируются в другой каталог для загрузки. Вы хотите исполь зовать какое-нибудь более быстрое и интеллектуальное средство, чем команда ср,
которая работает слишком медленно и не следит за тем, какие файлы нужно ко пировать, а какие - нет.
Решение
Организуйте синхронизацию файлов при помощи программы rsync. Для ускоре ния программа копирует только изменившиеся файлы и отслеживает изменения
внутри файлов и деревьев.
Обязательно установите последнюю версию rsync со всеми исправлениями
и заплатками безопасности. Вам нужна версия 2.6 и выше:
$ rsync --version
rsync version 2.6.6 protocol version 26
Следующая команда копирует каталог веб-файлов в каталог, содержимое ко торого позднее будет переслано на веб-сервер:
$ rsync -av --stats /home/pearlbear/webs ~/web_up1oad
building f i le list...done
Number of files: 254
Number of files transferred: 235
Total f i le size: 8923014 bytes
Total transferred f i le size: 8923014 bytes
Literal data: 8923014 bytes
Matched data: 0 bytes
File list size: 6490
Total bytes written 8939848
Total bytes read: 3780
Результат копирования проверяется командой
$ Is ~/web_upload
webs
ВНИМАНИЕ
Здесь есть небольшая тонкость: /home/pearlbear/images копирует содержимое /images и сам
каталог. Если добавить завершающую косую черту (/home/pearlbear/images/), будет скопирова но только содержимое каталога /images, но не сам каталог. Завершающая косая черта важна
только в исходном каталоге, а в приемном каталоге она игнорируется.
Если в каталоге /home/pearLbear/webs появятся новые файлы или в какие-то из
существующих файлов будут внесены изменения, просто выполните ту же ко манду заново. Rsync синхронизирует только изменения.
Для копирования можно выбрать несколько исходных каталогов:
$ rsync -av --stats /home/pearlbear/webs /home/pearlbear/web_images ~/web_upload
Комментарий
Если из исходного каталога были удалены какие-либо файлы, rsync не будет авто матически удалять их из синхронизированного каталога. Чтобы файлы были уда лены, включите в командную строку ключ --delete:
$ rsync -av --delete /home/pearlbear/webs ~/web_upload
Ключи -av означают соответственно архивацию (Archive) с сохранением фай ловых разрешений и владельцев я расширенный вывод (Verbose).
Будьте внимательны с ключом --delete. Если из архива rsync будет случайно
удален нужный файл, восстановить его уже не удастся. Также следите за правиль ностью путей, потому что в случае ошибки ключ —delete спокойно удалит целый
каталог или файловое дерево.
Программа rsync отлично подходит для синхронизации локальных архивов.
Если вы занимаетесь веб-дизайном, работаете над программным проектом, соби раете файлы для записи на компакт-диск или выполняете операции с любой круп ной коллекцией файлов, доверьте rsync отслеживание и синхронизацию всех из менений — это сэкономит вам немало времени.
См. также
Ksync(l).



Notice: Undefined offset: 0 in /var/www/u202064/data/www/adminbook.ru/module/book_file/index.php on line 10

Notice: Undefined offset: 0 in /var/www/u202064/data/www/adminbook.ru/module/book_file/index.php on line 13

Notice: Undefined offset: 0 in /var/www/u202064/data/www/adminbook.ru/module/book_file/index.php on line 10

Notice: Undefined offset: 0 in /var/www/u202064/data/www/adminbook.ru/module/book_file/index.php on line 13