Rsync: выполнить разрешение требуется

Я использую rsync между двумя серверами для передачи файлов.

Проблема в том, что некоторые файлы не передаются. Я получаю эту ошибку: rsync: чтение ссылки "/var/www/index.html" не удалось: разрешение отклонено (13)

Поэтому я проверяю разрешения на сервере и после выполнения тестов замечаю, что файл передается, только если у него есть эти разрешения: RW! Если файл имеет следующие разрешения: R--, Rsync не может его загрузить!?

Команда:

/usr/bin/rsync -avzr -e "/usr/bin/ssh -i /home/replication/thishost-rsync-key" replication@192.168.1.10:/var/www/index.html ./

Это ошибка с Rsync? Я нахожу любую информацию об этой проблеме.

Спасибо за вашу помощь

Debian Etch 2.6.30 Rsync 2.6.9 версия протокола 29

2 ответа

Чтобы убедиться, что это разрешение, как говорит rsync, попробуйте:

ssh replication@192.168.1.10 "ls -al /var/www/index.html"
or
ssh replication@192.168.1.10 "ls -al /var/www/"

Посмотрите, являются ли некоторые файлы, которые не были переданы, символическими ссылками, которые указывают вне дерева; если это так, взгляните на аргументы --safe-links или --copy-links.

Либо измените разрешения, либо измените пользователя.

Вы можете придать rsync больше "многословия", как с rsync -avvv [...] чтобы увидеть еще больше сообщений об ошибках.

Параметр "r" не требуется, поскольку "a" по умолчанию равно "-rlptgoD". И когда вы копируете рекурсивно, оставьте "index.html", просто напишите "/var/www/" с завершающей косой чертой.

rsync должен иметь возможность читать файлы, которые вы пытаетесь скопировать, поэтому я предполагаю, что пользователь, запустивший rsync, не имеет разрешения на чтение данного файла.

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

Если это не проблема, пожалуйста, опубликуйте вывод команды ls -l /var/www/index.html.

Другие вопросы по тегам