Синхронизация файлов: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
 
Строка 26: Строка 26:


;--exclude='.*' :исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время.
;--exclude='.*' :исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время.
==== Проблемы с кодировками в лог файле ====
Иногда, при копировании файлов возникают ошибки и при перенаправлении ввода '2> LogFile.log',
текст ошибок записывается в файл в кириллической кодировке в формате '\#320\#220\...'
Пример: <code>rsync -rlptDvh --chmod 770 /mnt/doc/SERVER-1S/ /mnt/1s/ 2> ~/rsync_err</code>
Чтобы просмотреть файл rsync_err в читабельном формате, необходимо текст файла пропустить через данный конвейер команд:
<code>echo "\#320\#255\#320\#272\#320\#276" | sed "s/#//g" | xargs -0 printf</code>
или
<code>cat rsync_err | sed "s/#//g" | xargs -0 printf</code>


{{Примечание|Резервное копирование возможно как на раздел с файловой системой Linux, так и на том FAT32/NTFS.}}
{{Примечание|Резервное копирование возможно как на раздел с файловой системой Linux, так и на том FAT32/NTFS.}}
[[Категория:HOWTO]]
[[Категория:HOWTO]]

Текущая версия от 08:51, 13 октября 2023

Синхронизация локальных файлов и каталогов

Rsync

Согласно описанию, rsync - быстрый, универсальный инструмент для удаленного (и локального) копирования файлов. Для резервного копирования и синхронизации нескольких каталогов с файлами, можно воспользоваться следующей командой (от имени обычного пользователя):

  $ rsync -avh --del --progress ./dir1 ./dir2 ./dir3 ./backup

В результате ее выполнения каталоги ./dir1 ./dir2 и ./dir3, вместе со всем их содержимым, рекурсивно копируются в каталог ./backup. Если файлы не были изменены, они будут пропущены. При этом важно в конце имени каждого каталога-источника ./dir1 ./dir2 и ./dir3 не ставить слеш / для того, чтобы и сами эти каталоги были включены в резервную копию, а не только их содержимое. В конце имени каталога-приемника ставить слеш / можно.

Дополнительные опции имеют следующие значения:

-a
опция для архивирования, эквивалентна -rlptgoD. Согласно описанию, это быстрый способ сказать, что вы хотите рекурсию и хотите сохранить почти все;
-v
увеличить количество выводимой на экран информации о ходе процесса;
-h
выводить числа в удобочитаемом формате;
--del
удалять файлы в каталоге-приемнике, если они были удалены в каталоге-источнике;
--progress
показывать прогресс во время передачи.

ПРИМЕР: Резервное копирование домашних каталогов нескольких пользователей компьютера на внешний жесткий диск

Для этого можно выполнить команду (понадобятся права пользователя root):

  $ su -   
  # rsync -avh --del --progress --exclude='.*' /home/<Пользователь_1> /home/<Пользователь_2> /run/media/<Пользователь_1>/<Имя_USB_HDD>/backup

В результате ее выполнения каталоги /home/<Пользователь_1> и /home/<Пользователь_2>, вместе со всем их содержимым, за исключением скрытых файлов и каталогов, рекурсивно копируются в каталог /run/media/<Пользователь_1>/<Имя_USB_HDD>/backup. В Альт Рабочая станция К, при подключении и монтировании внешнего жесткого диска, его содержимое становится доступным по пути /run/media/<Пользователь_1>/<Имя_USB_HDD>/. В данном примере на внешнем жестком диске создается каталог backup, где и будет находиться резервная копия.

Дополнительные опции имеют следующие значения:

--exclude='.*'
исключить из резервной копии скрытые файлы и каталоги. Можно рекомендовать эту опцию, если резервное копирование скрытых файлов и каталогов занимает значительное время.

Проблемы с кодировками в лог файле

Иногда, при копировании файлов возникают ошибки и при перенаправлении ввода '2> LogFile.log', текст ошибок записывается в файл в кириллической кодировке в формате '\#320\#220\...'

Пример: rsync -rlptDvh --chmod 770 /mnt/doc/SERVER-1S/ /mnt/1s/ 2> ~/rsync_err

Чтобы просмотреть файл rsync_err в читабельном формате, необходимо текст файла пропустить через данный конвейер команд:

echo "\#320\#255\#320\#272\#320\#276" | sed "s/#//g" | xargs -0 printf

или

cat rsync_err | sed "s/#//g" | xargs -0 printf


Примечание: Резервное копирование возможно как на раздел с файловой системой Linux, так и на том FAT32/NTFS.