Я смонтировал облачное хранилище Box.com, используя davfs в соответствии с этими инструкциями . Я подключил свой аккаунт Box.com в / home / me / Cloud / Box
Я могу получить доступ к смонтированной файловой системе через Dolphin, а также через терминал. Это немного медленно, но я могу перечислить (ls) и перемещаться по всей структуре каталогов без ошибок.
Затем я попытался запустить rsync следующим образом:
rsync -auvz --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music
Я также попробовал:
rsync -auv /home/me/Music/A /home/me/Cloud/Box/Music
и другие варианты команд rsync. Команда копирует мою музыку из моей локальной файловой системы (/ home / me / Music /) в облако Box (/ home / me / Cloud / Box / Music) через монтирование davfs.
Я всегда получаю много ошибок этой формы:
rsync: mkstemp <filename> failed: Invalid argument (22)
Конкретный пример:
rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)
Все это происходит на 64-битном Kubuntu 12.04 LTS, серверном оборудовании, с быстрым / надежным подключением через кабельный модем (скорость загрузки 12 Мбит / с).
--max-size=250M --exclude '.*'
. Я уверен, чтоcp
можно сделать это ... может быть, отправив вывод find в cp? Но я пока не знаю, как это сделать. Если мы придумаем решение, я попробуюcp -ru
. Спасибо... -size -250M
, что нужно, иначе вы бы использовали+250M
(здесь была краткая неверная версия, но я понял это до того, как исправление было исправлено)1. Проблемы со специальными символами в именах файлов
Есть ли специальные символы в именах файлов? В зависимости от файловой системы, в которую вы записываете эти файлы, они могут не позволять вам добавлять к файлам префикс, например, с точкой (
.
).2. Проблемы со временем модификации rsync и webdav2
Я наткнулся на это сообщение в блоге, где описана
rsync
проблема с проблемой записи / отслеживания времени изменения файла в подключенных к webdav2 каталогах box.com.Проблема проявляется следующим образом в смонтированной файловой системе:
Та же статья показала обходной путь:
Это нормальный способ использования
rsync
, но теперь он сравнивает файлы только по размеру, а не по контрольным суммам.3. Проблемы с davfs2 (WebDAV)
Я наткнулся на эту тему под названием: rsync через davfs2? на форуме WebDAV (davfs) на sourceforge. Кто-то интересовался похожей ситуацией, когда они хотели использовать WebDAV для подключения поставщика онлайн-хранилищ и выполнения rsync для подключенного хранилища через WebDAV. Это то, что один из разработчиков (Вернер Бауманн) из WebDAV должен был сказать по этой теме .
выдержка из ответа Вернера
Вернер продолжает предлагать следующее
Опции?
Поэтому, как предложил @Anthon, вы можете использовать
cp -u
метод для копирования файлов. Понимая, что этот метод рассматривает только размер файла как фактор сравнения, он не совсем надежен.Вы не должны использовать ничего, что смотрит только на время модификации при сравнении файлов
cp -pru
. Вернер объясняет, почему в этой теме :выдержка в выпуске с модом раз
Поэтому, учитывая различные проблемы, связанные со временем модификации, подход, использующий чисто контрольные суммы, кажется более подходящим:
источник
got file_sum recv_files(Some_Music_[1999]/Some_Music_[1999]Zuni_SongVarious_Artists24.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Some_Music_[1999]/.Some_Music_[1999]Zuni_SongVarious_Artists24.mp3.1aWWRY" failed: Invalid argument (22) got file_sum
got file_sum recv_files(Carlos/Dance/05-Tapestry-Carlos.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Carlos/Dance/.05-Tapestry-Carlos.mp3.WeGbGS" failed: Invalid argument (22) got file_sum recv_files(Carlos/Dance/06-Dance-Turquoise_Dance-Carlos.mp3)
rsync
вы используете?rsync --version
,rsync version 3.0.9 protocol version 30
и сейчас я тестирую ваше обновленное решение. Спасибо!Чтобы остановить
Invalid argument (22)
ошибку, мне пришлось остановить rsync от создания временных файлов в месте назначения davfs.Я думаю, что происходит, имена временных файлов rsync начинаются с,
.
и davfs не позволяет этого. Поэтому я пошел дальше и сказал rsync игнорировать исходные файлы с именами, начинающимися с.
. Поскольку я использую--delete
, я также сказал, чтобы не пытаться удалитьlost+found
каталог в месте назначения davfs.источник