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

Rsync для Windows FTP через curlftpfs не может установить разрешения

Я передаю некоторые большие файлы (1,5 ГБ) на FTP-сервер Windows в cronjob. Он идет по линии ADSL 2 Мбит с восходящим потоком 512 Кбит. Так что это длится вечно, и может быть легко выскользнуть из строя.

Для этого я использую цикл вокруг rsync

while ! rsync -q -P --append source ftp_dest; do
    sleep 60#give the line a chance to reset (which happens automatically)
done

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

РЕДАКТИРОВАТЬ:

Я добавил "--no-p --no-o --no-g --no-X --no-A" в соответствии с предложением ниже, но по-прежнему получаю следующую ошибку

rsync: ftruncate failed on "/mnt/ftpremote/test.bin": Operation not permitted (1)

Это не проблема, за исключением того, что мой цикл продолжается вечно. Есть ли способ сказать rsync, чтобы он вообще не пытался устанавливать разрешения? Я просмотрел страницу руководства и ничего не нашел (даже если вы скажете ему не устанавливать разрешения, он установит разрешения по умолчанию). Я думал использовать коды ошибок, но код ошибки для настройки неудачных разрешений - 23 (согласно справочной странице «Частичная передача из-за ошибки»), что похоже, что это будет код, который будет использоваться, если строка все равно пропадет.

Если использовать весь спектр --no-p --no-A --no-X --no-o --no-g --no-D не работает, возможно, вы могли бы изменить свой цикл и использовать результат md5sum в качестве критерия остановки, то есть зацикливать rsync до тех пор, пока файлы не станут такими же.