Как использовать Rsync для резервного копирования локальных и удаленных файлов

12 set 2022 4 min di lettura
Как использовать Rsync для резервного копирования локальных и удаленных файлов
Indice dei contenuti

Введение

Rsync означает «удаленная синхронизация», это инструмент для локальной и удаленной синхронизации файлов и папок. Он использует алгоритм, который минимизирует объем скопированных данных, перемещая только те части файлов, которые были изменены. В этом руководстве мы рассмотрим основные способы использования этой мощной утилиты.

В примерах мы будем использовать VPS с Ubuntu 18.04 LTS, но можно использовать любой современный дистрибутив Linux.

Rsync — очень гибкий инструмент синхронизации с поддержкой сети. Из-за его повсеместного распространения в системах Linux и Unix и его популярности в качестве инструмента системных сценариев он включен в большинство дистрибутивов Linux по умолчанию.

Если вы намерены использовать Rsync на удаленном сервере, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется пароль для аутентификации.

Чтобы подключиться к серверу как root, введите эту команду:

ssh root@IP_DEL_SERVER

Далее вам будет предложено ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить первый параметр:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Теперь вы подключены к вашему серверу.

Как использовать Rsync

Базовый синтаксис rsync очень прост и работает аналогично ssh, scp и cp. Мы создадим два тестовых каталога и несколько тестовых файлов с помощью следующих команд: Перейдем к дому:

cd ~

Создайте папку с именем dir1:

mkdir dir1

Создайте еще одну папку с именем dir2:

mkdir dir2

Создайте 100 файлов в папке dir1;

touch dir1/file{1..100}

Чтобы просмотреть все созданные файлы:

ls dir1

Чтобы синхронизировать содержимое dir1 с dir2 в той же системе, введите:

rsync -r dir1/dir2

Параметр -r означает рекурсивный, что требуется для синхронизации каталогов. Вместо этого мы могли бы также использовать флаг -a:

rsync -a dir1/dir2

Параметр -a является флагом, представляющим « архив », и рекурсивно синхронизирует и сохраняет символические ссылки, специальные файлы и файлы устройств, время модификации, группу, владельца и разрешения. Он используется чаще, чем -r.

Возможно, вы заметили, что в конце первого аргумента в приведенных выше командах есть косая черта ( / ) в конце первого аргумента: rsync -a dir1 ** /** dir2 Это необходимо для обозначения « содержимого dir1 ».

В качестве альтернативы, без завершающей косой черты, каталог dir1 вместе с каталогом помещается внутрь каталога dir2.

Всегда проверяйте флаги перед запуском команды rsync. Rsync предоставляет метод тестирования путем передачи параметров -n или --dry-run. Флаг -v (для подробных сведений) также полезен для просмотра вывода команды.

Как использовать Rsync для синхронизации с удаленной системой

Синхронизация с удаленной системой проста, если у вас есть SSH-доступ к удаленной машине и rsync установлен на обоих серверах.

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

rsync -avzh /path/computer/locale/esempio.txt nome_utente@indirizzo_remoto:/path/server/remoto/

Это называется операцией " push ", потому что она отправляет каталог из локальной системы в удаленную систему.

Противоположная операция — « вытягивание ». Он используется для синхронизации удаленного каталога с локальной системой:

rsync -avzh nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

Если удаленный сервер использует нестандартный порт ssh, добавьте следующий параметр: ssh -p PORT и флаг -e. Итак, чтобы сделать бэкап с удаленного сервера на локальный, с нестандартным портом:

rsync -avzhe "ssh -p PORTA" nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

( НЕ рекомендуется по соображениям безопасности) Чтобы ввести пароль для доступа по ssh этой же командой, без необходимости писать его позже, установите следующее программное обеспечение:

sudo apt-get install sshpass

Следовательно:

sshpass -p "PASSWORD" rsync -avzhe "ssh -p PORTA" nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

Полезные опции для Rsync

Rsync предлагает множество вариантов изменения поведения утилиты по умолчанию. Если вы передаете файлы, которые еще не были сжаты, например текстовые файлы, вы можете добавить сжатие с параметром -z:

rsync -az sorgente destinazione

Флаг -P очень полезен. Объедините флаги --progress и --partial. Первый из них обеспечивает индикатор выполнения передачи, а второй позволяет возобновить прерванную передачу:

rsync -azP sorgente destinazione

Мы можем обновить время модификации некоторых файлов и увидеть, что rsync интеллектуально повторно копирует только измененные файлы:

rsync -azP sorgente destinazione

Чтобы действительно синхронизировать два каталога, файлы должны быть удалены из целевого каталога, если они удалены из источника. По умолчанию rsync ничего не удаляет из целевого каталога. Мы можем изменить это поведение с помощью параметра --delete. Прежде чем использовать эту опцию, используйте опцию --dry-run и проверьте, чтобы предотвратить потерю данных:

rsync -a --delete sorgente destinazione

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

rsync -a --exclude=file_da_escludere sorgente destinazione

Если мы указали шаблон для исключения, мы можем переопределить это исключение для файлов, соответствующих другому шаблону, используя параметр --include =.

rsync -a --exclude=file_da_escludere --include=file_da_includere sorgente destinazione

Наконец, параметр --backup rsync можно использовать для архивирования резервных копий важных файлов. Он используется в сочетании с параметром --backup-dir, который указывает каталог, в котором должны храниться файлы резервных копий.

rsync -a --delete --backup --backup-dir=/path/to/backups /path/to/source destinazione

Некоторые полезные флаги:

  • -a для архива, который содержит свойства, разрешения и т. д.
  • -e требуется при указании используемого протокола, например ssh.
  • -v для подробностей, чтобы я мог видеть, что происходит. (по желанию)
  • -h читается человеком, поэтому скорость передачи и размер файла легче читать. (по желанию)
  • -W предназначен только для копирования файлов целиком, без алгоритма delta-xfer, который должен снизить нагрузку на ЦП.
  • --progress, чтобы вы могли видеть прогресс больших файлов. (по желанию)

Вывод

Rsync может упростить передачу файлов по сетевым подключениям и повысить надежность синхронизации локальных каталогов. Гибкость rsync делает его хорошим вариантом для многих различных операций на уровне файлов. Мастерство rsync позволяет вам разрабатывать сложные операции резервного копирования и получать точный контроль над тем, что и как передается.

В этом уроке мы увидели, как использовать Rsync.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.