Как сохранить удаленный клонированный каталог с помощью rsync?

Как сохранить удаленный клонированный каталог с помощью rsync?

У меня есть доступ SSH (используя пару ключей SSH) к удаленной машине. Я хочу сохранить каталог на удаленной машине в точности равным заданному локальному каталогу (односторонняя синхронизация). Проверка на равенство файлов должна выполняться на основе хеша содержимого двоичного файла (не размера/даты).

  1. Какая правильная команда rsync для этого используется (не служба rsync)?
  2. Как обрабатываются права доступа к файлам?
  3. Как обрабатываются даты изменения файлов?
  4. Как rsync реагирует на сбои и каков код выхода?

решение1

Rsync проверяет содержимое файла, а не дату и/или размер файла. Если содержимое отличается, но имеет тот же путь и имя, то файл будет перезаписан.

Синтаксис rsync rsync options source destinationтаков: если вы хотите синхронизировать удаленный каталог с локальным, то это должно сработать:

rsync -azh local_folder user@remote_server:/path/to/destination/

Если вы хотите использовать SSH в качестве протокола передачи, то мне подойдет следующее:

rsync -azhe ssh local_folder user@remote_server:/path/to/destination

Как обрабатываются разрешения на доступ к файлам? Как обрабатываются даты изменения файлов?

Параметр aсохраняет символические ссылки, права доступа к файлам, временные метки... Если вы не хотите передавать эту информацию, просто исключите ее из команды, она будет принадлежать пользователю, под которым вы вошли в сеанс SSH.

Как rsync реагирует на сбои и каков код выхода?

Большинство команд/программ возвращают 0 в случае успеха и любое другое число в случае ошибки.Вот список кодов выхода rsyncдля справки

Связанный контент