Синхронизация файлов: различия между версиями
ЕвгенийИТ (обсуждение | вклад) м (→Rsync) |
Илья Н. (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
__NOTOC__ | |||
== Синхронизация локальных файлов и каталогов == | == Синхронизация локальных файлов и каталогов == | ||
=== Rsync === | === Rsync === | ||
'''rsync''' — быстрый, универсальный инструмент для удаленного (и локального) копирования файлов. Для резервного копирования и синхронизации нескольких каталогов с файлами можно воспользоваться следующей командой: | |||
rsync -avh --del --progress ./dir1 ./dir2 ./dir3 ./backup | |||
{{Note|Чтобы сам резервируемый каталог, а не только его содержимое, был включен в резервную копию, не ставьте '''слеш''' <code>/</code> в конце имени этого каталога.}} | |||
В результате | В результате выполнения команды каталоги {{path|./dir1}}, {{path|./dir2}} и {{path|./dir3}}, вместе со всем их содержимым, будут рекурсивно скопированы в каталог {{path|./backup}}. Если файлы уже есть в каталоге {{path|./backup}}, и не были изменены, они будут пропущены. | ||
Дополнительные опции имеют следующие значения: | Дополнительные опции имеют следующие значения: | ||
;-a :опция для архивирования, эквивалентна '''-rlptgoD''' | ;-a :опция для архивирования, эквивалентна '''-rlptgoD''', согласно описанию, это быстрый способ сказать, что вы хотите рекурсию и хотите сохранить почти все; | ||
;-v :увеличить количество выводимой на экран информации о ходе процесса; | ;-v :увеличить количество выводимой на экран информации о ходе процесса; | ||
;-h :выводить числа в удобочитаемом формате; | ;-h :выводить числа в удобочитаемом формате; | ||
Строка 16: | Строка 17: | ||
==== ПРИМЕР: Резервное копирование домашних каталогов нескольких пользователей компьютера на внешний жесткий диск ==== | ==== ПРИМЕР: Резервное копирование домашних каталогов нескольких пользователей компьютера на внешний жесткий диск ==== | ||
Для | Для резервного копирования данных в домашних каталогах нескольких пользователей выполните команду (понадобятся права '''root'''): | ||
su - | |||
rsync -avh --del --progress --exclude='.*' /home/<Пользователь_1> /home/<Пользователь_2> /run/media/<Пользователь_1>/<Имя_USB_HDD>/backup | |||
exit | |||
где {{path|/run/media/<Пользователь_1>/<Имя_USB_HDD>}} — предварительно смонтированный USB HDD или флеш-накопитель. | |||
Дополнительные опции имеют следующие значения: | Дополнительные опции имеют следующие значения: | ||
Строка 27: | Строка 29: | ||
;--exclude='.*' :исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время. | ;--exclude='.*' :исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время. | ||
==== Проблемы с кодировками в лог файле | ==Решение проблем== | ||
=== Проблемы с кодировками в лог-файле === | |||
При использовании '''rsync''' и перенаправлении вывода ошибок в файл, кириллические символы в тексте ошибок могут быть записаны в формате <code>\#320\#220\...</code>. | |||
Например: | |||
rsync -rlptDvh --chmod 770 /mnt/doc/SERVER-1S/ /mnt/1s/ 2> ~/rsync_err | |||
Чтобы просмотреть содержимое файла {{path|rsync_err}} в читаемом формате, можно пропустить его через данный конвейер команд: | |||
cat rsync_err | sed "s/#//g" | xargs -0 printf | |||
[[Категория:Пользователю]] | |||
[[Категория:HOWTO]] | [[Категория:HOWTO]] |
Текущая версия от 13:17, 12 февраля 2025
Синхронизация локальных файлов и каталогов
Rsync
rsync — быстрый, универсальный инструмент для удаленного (и локального) копирования файлов. Для резервного копирования и синхронизации нескольких каталогов с файлами можно воспользоваться следующей командой:
rsync -avh --del --progress ./dir1 ./dir2 ./dir3 ./backup
/
в конце имени этого каталога.В результате выполнения команды каталоги ./dir1, ./dir2 и ./dir3, вместе со всем их содержимым, будут рекурсивно скопированы в каталог ./backup. Если файлы уже есть в каталоге ./backup, и не были изменены, они будут пропущены.
Дополнительные опции имеют следующие значения:
- -a
- опция для архивирования, эквивалентна -rlptgoD, согласно описанию, это быстрый способ сказать, что вы хотите рекурсию и хотите сохранить почти все;
- -v
- увеличить количество выводимой на экран информации о ходе процесса;
- -h
- выводить числа в удобочитаемом формате;
- --del
- удалять файлы в каталоге-приемнике, если они были удалены в каталоге-источнике;
- --progress
- показывать прогресс во время передачи.
ПРИМЕР: Резервное копирование домашних каталогов нескольких пользователей компьютера на внешний жесткий диск
Для резервного копирования данных в домашних каталогах нескольких пользователей выполните команду (понадобятся права root):
su - rsync -avh --del --progress --exclude='.*' /home/<Пользователь_1> /home/<Пользователь_2> /run/media/<Пользователь_1>/<Имя_USB_HDD>/backup exit
где /run/media/<Пользователь_1>/<Имя_USB_HDD> — предварительно смонтированный USB HDD или флеш-накопитель.
Дополнительные опции имеют следующие значения:
- --exclude='.*'
- исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время.
Решение проблем
Проблемы с кодировками в лог-файле
При использовании rsync и перенаправлении вывода ошибок в файл, кириллические символы в тексте ошибок могут быть записаны в формате \#320\#220\...
.
Например:
rsync -rlptDvh --chmod 770 /mnt/doc/SERVER-1S/ /mnt/1s/ 2> ~/rsync_err
Чтобы просмотреть содержимое файла rsync_err в читаемом формате, можно пропустить его через данный конвейер команд:
cat rsync_err | sed "s/#//g" | xargs -0 printf