rsync копировать только новые файлы, без обновлений?

10

Я хотел бы использовать rsync для копирования файлов с удаленного сервера. Я хотел бы

  • только копировать файлы с сервера, а не выдвигать обратно.
  • копировать файлы, которые не существуют. Если удаленный файл новее, я не хочу его копировать
  • сделать это автоматически. Это запрашивает у меня пароль каждый раз, и я хотел бы, чтобы он запускался cron. Так как мне запустить его в bash-скрипте, выполняемом cron?
isaaclw
источник
Чтобы «сделать это автоматически», --password-fileопция предоставила бы пароль к приглашению сервера. Файл должен просто содержать фразу-пароль в виде открытого текста и не позволять другим пользователям иметь доступ для чтения.
altmas5

Ответы:

5

Пункты 1 и 2: Как указать, что копировать, лучше всего прочитать, прочитав man-страницу rsync . В вашем случае обратите особое внимание на флаг --ignore-существующие.

Пункт 3: Это руководство поможет вам использовать ssh без пароля с rsync. Сводка: установите ssh без пароля и используйте '-e ssh', чтобы сообщить rsync, что нужно использовать ssh вместо rsh для подключения к удаленному хосту.

pjz
источник
Я посмотрел на человека, и я не могу понять, что позволит мне копировать только новые файлы, а не обновлять.
1

Во второй части, поскольку pjz ответил на все остальное, я полагаю, что вы можете использовать ключ --ignore-существующие для получения только новых файлов.

С http://www.samba.org/ftp/rsync/rsync.html :

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

Этот параметр может быть полезен для тех, кто выполняет резервное копирование, используя параметр --link-dest, когда им нужно продолжить выполнение резервного копирования, которое было прервано. Поскольку запуск --link-dest копируется в новую иерархию каталогов (при правильном использовании), использование --ignore существующие гарантирует, что уже обработанные файлы не будут настроены (что позволяет избежать изменения разрешений для жестко связанные файлы). Это означает, что эта опция только просматривает существующие файлы в самой иерархии назначения.

runlevelsix
источник