Утилита rsync (удаленная синхронизация) копирует обычную иерархию файлов или каталогов локально или из локальной системы в другую систему в сети или из нее.
По умолчанию эта утилита использует OpenSSH для передачи файлов и тот же механизм аутентификации, что и OpenSSH; следовательно, она обеспечивает ту же безопасность, что и OpenSSH.
Утилита rsync запрашивает пароль, когда он ему нужен.
$ rsync -avz /data root@srv::files Password:
Хотя иногда вы не хотите, чтобы rsync запрашивал пароль.
Например, если вы хотите, чтобы задание rsync было запланировано в crontab, необходимо выполнить операцию rsync без пароля.
Существует два способа использования rsync без запроса пароля:
1. используйте переменную окружения RSYNC_PASSWORD
2. –password-file option.
1. Метод с использованием переменной среды
1. В этом методе мы устанавливаем переменную окружения RSYNC_PASSWORD перед использованием команды rsync.
Например:
$ export RSYNC_PASSWORD=secret
Здесь «secret» – используемый пароль.
Теперь вы можете использовать команду rsync, и она больше не должна запрашивать пароль.
$ rsync -avz /data root@srv::files
Вы также можете экспортировать переменную RSYNC_PASSWORD в скрипт, если хотите.
Но убедитесь, что скрипт доступен для чтения только вам, а не кому-либо еще.
2. Другой способ – указать переменную окружения RSYNC_PASSWORD в самой команде rsync.
Например:
$ RSYNC_PASSWORD=secret rsync -avz /data root@srv::files
2. Метод с использованием опции –password-file
1. В этом методе мы создаем файл паролей, как показано ниже.
Убедитесь, что файл паролей не доступен для чтения всем пользователям (имеет разрешение 600).
$ echo passw0rd > user1.secret $ chmod 600 user1.secret
2. Теперь запустите команду rsync с параметром –password-file и укажите файл пароля, который вы только что создали.
$ rsync -avz --password-file user1.secret /data root@srv::files
Для получения дополнительной информации см. Страницу руководства для rsync с:
# man rsync