Zainstalowałem pamięć masową w chmurze Box.com za pomocą davfs zgodnie z tymi instrukcjami . Zainstalowałem swoje konto Box.com w katalogu / home / me / Cloud / Box
Mogę uzyskać dostęp do zamontowanego systemu plików zarówno przez Dolphin, jak i przez terminal. Jest to trochę powolne, ale mogę wyświetlić listę (ls) i poruszać się po całej strukturze katalogów bez błędów.
Następnie próbowałem uruchomić rsync w następujący sposób:
rsync -auvz --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music
Próbowałem także:
rsync -auv /home/me/Music/A /home/me/Cloud/Box/Music
i inne odmiany poleceń rsync. Polecenie kopiuje moją muzykę z mojego lokalnego systemu plików (/ home / me / Music /) do chmury Box (/ home / me / Cloud / Box / Music) przez davfs mount.
Zawsze pojawia się wiele błędów tego formularza:
rsync: mkstemp <filename> failed: Invalid argument (22)
Konkretnym przykładem jest:
rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)
Wszystko to dzieje się na 64-bitowym sprzęcie serwerowym Kubuntu 12.04 LTS z szybkim / niezawodnym modemem kablowym (prędkość wysyłania 12 Mb / s).
--max-size=250M --exclude '.*'
. Jestem pewien, żecp
można to zrobić ... może przez przesłanie wyników find do cp? Ale nie wiem jeszcze, jak to zrobić. Jeśli wymyślimy rozwiązanie, spróbujęcp -ru
. Dzięki... -size -250M
działa, w przeciwnym razie byś użył+250M
(tutaj była na krótko niepoprawna wersja, ale zdałem sobie z tego sprawę przed naprawą edycji)1. Problemy ze znakami specjalnymi w nazwach plików
Czy w nazwach plików są jakieś znaki specjalne? W zależności od systemu plików, w którym zapisujesz te pliki, mogą one nie pozwalać na przykład poprzedzać plików kropką (
.
).2. Problemy z czasami modyfikacji rsync i webdav2
Natrafiłem na ten post na blogu, w którym opisany jest problem z
rsync
czasem zapisu / śledzenia modyfikacji pliku w katalogach box.com zamontowanych w webdav2.Problem pojawia się w następujący sposób w zamontowanym systemie plików:
Ten sam artykuł pokazał obejście:
Jest to OK sposób użycia
rsync
, ale teraz porównuje tylko pliki na podstawie ich rozmiaru, a nie ich sumy kontrolne.3. Problemy z davfs2 (WebDAV)
Natknąłem się na ten wątek: rsync przez davfs2? na forum WebDAV (davfs) na stronie sourceforge. Ktoś pytał o podobną sytuację, w której chcieli użyć WebDAV do zamontowania dostawcy pamięci masowej online i wykonania rsync do zamontowanej pamięci masowej za pośrednictwem WebDAV. To właśnie powiedział jeden z programistów (Werner Baumann) WebDAV na ten temat .
fragment odpowiedzi Wernera
Werner sugeruje, co następuje
Opcje?
Tak jak sugeruje @Anthon, możesz użyć
cp -u
metody do skopiowania plików. Zdając sobie sprawę, że ta metoda uwzględnia jedynie rozmiar pliku jako czynnik porównawczy, więc nie jest całkowicie niezawodna.Nie należy używać niczego, co tylko wygląda czasami modyfikacji przy porównywaniu plików
cp -pru
. Werner wyjaśnia dlaczego w tym wątku :fragment dotyczący problemu z czasami modyfikacji
Biorąc pod uwagę różne problemy związane z czasami modyfikacji, lepsze wydaje się podejście wykorzystujące sumy kontrolne:
źródło
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
używasz?rsync --version
.rsync version 3.0.9 protocol version 30
i testuję teraz twoje zaktualizowane rozwiązanie. Dzięki!Aby zatrzymać
Invalid argument (22)
błąd, musiałem powstrzymać rsync przed tworzeniem plików tymczasowych w miejscu docelowym davfs.Myślę, że dzieje się tak, że nazwy plików tymczasowych rsync zaczynają się od,
.
a davfs na to nie pozwala. Poszedłem więc dalej i powiedziałem rsync, aby ignorowało pliki źródłowe o nazwach zaczynających się od.
. Ponieważ używam--delete
, powiedziałem mu również, aby nie próbować usuwaćlost+found
katalogu z miejsca docelowego davfs.źródło