Я хотел бы использовать rsync для синхронизации файлов с удаленного компьютера в локальный каталог. Поэтому я использую StrictHostKeyChecking , чтобы не вводить пароль.
Теперь я хочу синхронизировать только файлы старше 5 минут. Я решил использовать
find /path/to/folder/ -type f -mmin +5
Как интегрировать его в свою удаленную процедуру?
rsync -e "./ssh -i %syncclientkey% -o 'StrictHostKeyChecking no'" syncusr@%syncsrv:path/to/source path/to/destination
StrictHostKeyChecking
не имеет ничего общего с аутентификацией без пароля. Его цель - создать обратный DNS с прямым подтверждением, чтобы быть уверенным, что вы действительно подключены к предполагаемому серверу, и что не используется перехват уровня DNS для перенаправления вас на другой сервер.
Для использования аутентификации с открытым ключом у вас был выполните следующие действия:
ssh-keygen
ssh-copy-id
Что касается второй части вашего вопрос, rsync
сам по себе не поддерживает выбор по времени. Вам нужно было сгенерировать список файлов с помощью find
и направить его в rsync
.
Например: find / path / to / folder / -type f -mmin +5 -print0 | rsync -files-from = - -from0 syncusr @% syncsrv: path / to / source path / to / destination
Однако, поскольку rsync
чрезвычайно эффективен при передаче только измененных файлов / дельт, возможно, вы можно полностью пропустить этап выбора файла и просто синхронизировать всю папку каждые 5 минут. rsync
будет синхронизировать / передавать только измененные файлы (с 5-минутным интервалом это означает, что будут синхронизированы только файлы, измененные за последние 5 минут).