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

Почему rsnapshot утверждает, что исходный каталог не существует?

Я пытаюсь настроить систему резервного копирования с помощью rsnapshot, который будет копировать файлы из удаленного места в локальное. У меня настроен rsnapshot, насколько я понимаю правильно, но когда я запускаю rsnapshot configtest, он говорит

'backup  web3:backups/   web3/ - Source directory "web3:backups/ " doesn't exist'

Я использую следующую конфигурационную строку:

backup  web3:backups/   web3/

Он использует псевдоним в файле hosts. Однако я также пробовал использовать IP-адрес и определять имя пользователя в команде, но ни один из них не работает (та же ошибка). Я также проверил, включен ли cmd_ssh и указывает на действительный файл.

Кто-нибудь знает, что может быть причиной этого? На данный момент это становится довольно неприятно, так как мне удалось заставить работать большинство систем резервного копирования, и я уверен, что у меня это тоже работало раньше. Я пробовал использовать ssh и rsync, и оба, похоже, рассматривают резервные копии web3: как допустимое сетевое расположение.

Было бы хорошо сначала протестировать синтаксис конфигурации.

rsnapshot -c /usr/local/etc/rsnapshot.conf configtest

В моем случае проблема «Исходный каталог ... не существует» была решена удалением конечных пробелов.

Хотя в документации для rsync говорится, что он принимает аргумент host: path и использует rsh, я не смог найти доказательств в коде для этой поддержки.

Перед выдачей сообщения, которое вы видите, он выполняет ряд тестов для аргумента источника:

Перефразируя:

if ( is_real_local_abs_path($src) )
elsif ( is_ssh_path($src) )
elsif ( is_anon_rsync_path($src) )
elsif ( is_cwrsync_path($src) )
elsif ( is_linux_lvm_path($src) )
else print "Source directory $src doesn't exist"

Ни один из этих шаблонов не является вашим host: path

Если можете, используйте ssh или демон rsync в web3.

Для тех, кто получает эту ошибку в локальной файловой системе, обязательно следуйте символическим ссылкам полностью, когда подтверждаете, что каталог действительно существует. Например, я получал эту ошибку для / mydir, которая указывала на / data / mydir, который существовал ... но на самом деле был нечитаемым пользователем root, потому что encfs скрывает смонтированные пользователем каталоги даже из root, без -o allow_others вариант.

Из документация rsnapshot

Помимо полных путей в локальной файловой системе, вы также можете создавать резервные копии удаленных систем с помощью rsync поверх ssh. Если у вас установлен и включен ssh (с помощью параметра cmd_ssh), вы можете указать путь, например:

резервная копия root@example.com: / etc / example.com/

Вам нужно добавить пульт username@ в строку, поэтому, если вы входите в систему как root, ваш файл конфигурации должен быть:

backup  root@web3:backups/   web3/

Возможно, вам также потребуется использовать абсолютный путь (например, /root/backups/ вместо просто backups/)

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

У меня был разрыв строки между первым оператором резервного копирования и вторым. Кроме того, в объявлении резервной копии присутствовал пробел, а не просто вкладки.

В моем случае две проблемы:

  • удаленный сервер использовал собственный порт SSH, должен был убедиться, что он ~/.ssh/config
  • rsnapshot, похоже, отказывается принимать относительные пути (т.е. которые не начинаются с косой черты), например remoteuser@example.com:public_html. видя, как ты пытался web3:backups/, возможно, у вас была такая же проблема