Назад | Перейти на главную страницу

Несогласованность Rsync между CLI и crontab

Я хочу использовать rsync для синхронизации моей домашней папки с «резервной» копией на другом диске на машине Ubuntu 11.10. И я хочу, чтобы это происходило каждые 15 минут.

Если я запускаю вручную:

rsync -ar --delete /home/user/ /backupdrive/

в CLI работает нормально - все синхронизировано.

Но я добавил:

*/15 * * * * rsync -ar --delete /home/user/ /backupdrive/

к sudo crontab -e и пока он добавляет новые файлы, он не удаляет старые.

Любые идеи?

редактировать

Первые три строки cron out.txt:

sending incremental file list
./
IO error encountered -- skipping file deletion

Этого не происходит с версией CLI.

Если вы используете SSH-аутентификацию в своей интерактивной оболочке неявно для rsync, вам необходимо явно настроить ее для использования в cron. Это может быть сложно заблокировать с помощью ключей SSH, которые должны работать без парольных фраз, так как в идеале нужно ограничить, где вывод rsync может попадать на дальний конец.

Вы можете использовать файл ~ / .ssh / authorized_keys, чтобы настроить ключ для запуска только определенной конкретной команды, когда кто-то подключается к хосту. Если бы rsync в режиме демона можно было принудительно поместить все в целевой каталог, указанный в записи «command» файла /.ssh/authorized_keys, это было бы даже довольно безопасно. На странице rsyncd.conf (5) есть несколько подходящих опций для такого рода вещей.