Montei o armazenamento em nuvem Box.com usando davfs de acordo com estas instruções . Montei minha conta Box.com em / home / me / Cloud / Box
Eu posso acessar o sistema de arquivos montado via Dolphin e também através do terminal. É um pouco lento, mas posso listar (ls) e navegar por toda a estrutura de diretórios sem erros.
Em seguida, tentei executar o rsync da seguinte maneira:
rsync -auvz --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music
Eu também tentei:
rsync -auv /home/me/Music/A /home/me/Cloud/Box/Music
e outras variações de comandos rsync. O comando está copiando minha música do meu sistema de arquivos local (/ home / me / Music /) para a nuvem Box (/ home / me / Cloud / Box / Music) através da montagem davfs.
Eu sempre recebo muitos erros deste formulário:
rsync: mkstemp <filename> failed: Invalid argument (22)
Um exemplo específico é:
rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)
Tudo isso está acontecendo no Kubuntu 12.04 LTS de 64 bits, hardware de servidor, com uma conexão de modem a cabo rápida / confiável (velocidades de upload de 12 Mb / s).
--max-size=250M --exclude '.*'
. Tenho certeza quecp
pode ser feito para fazer isso ... talvez canalizando a saída do find para cp? Mas ainda não sei como fazer isso. Se surgirmos uma solução, tentareicp -ru
. Obrigado... -size -250M
faz, caso contrário, você usaria+250M
(havia brevemente uma versão errado aqui, mas eu percebi que antes da edição foi fixado)1. Problemas com caracteres especiais nos nomes de arquivos
Existem caracteres especiais nos nomes dos arquivos? Dependendo do sistema de arquivos no qual você está gravando esses arquivos, eles podem não permitir que você prefixe os arquivos com um ponto (
.
), por exemplo.2. Problemas com tempos de modificação do rsync e webdav2
Me deparei com este post do blog, onde é descrito
rsync
um problema com o problema de escrever / acompanhar os tempos de modificação de arquivos nos diretórios webdav2 montado em box.com.O problema aparece assim no sistema de arquivos montado:
Esse mesmo artigo mostrou uma solução alternativa:
Essa é uma boa maneira de usar
rsync
, mas está apenas comparando arquivos com base no tamanho atual, não nas somas de verificação.3. Problemas com davfs2 (WebDAV)
Me deparei com este segmento intitulado: rsync via davfs2? no fórum WebDAV (davfs) no sourceforge. Alguém estava perguntando sobre uma situação semelhante em que desejava usar o WebDAV para montar um provedor de armazenamento online e executar rsync no armazenamento montado via WebDAV. Isso é o que um dos desenvolvedores (Werner Baumann) do WebDAV disse sobre esse tópico .
trecho da resposta de Werner
Werner continua sugerindo o seguinte
Opções?
Então, como o @Anthon sugeriu, você pode usar o
cp -u
método para copiar os arquivos. Perceber que esse método considera apenas o tamanho de um arquivo como um fator em comparação, portanto, não é totalmente confiável.Você não deve usar nada que apenas observe os tempos de modificação ao comparar arquivos
cp -pru
,. Werner explica o porquê nesta discussão :trecho em questão com tempos modernos
Portanto, considerando os vários problemas relacionados aos tempos de modificação, uma abordagem usando somas de verificação puramente parece um ajuste melhor:
fonte
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
você está usando?rsync --version
.rsync version 3.0.9 protocol version 30
e estou testando sua solução atualizada agora. Obrigado!Para interromper o
Invalid argument (22)
erro, tive que parar o rsync de criar seus arquivos temporários no destino davfs.Acho que o que acontece é que os nomes dos arquivos temporários do rsync começam
.
e o davfs não permite isso. Então fui mais longe e disse ao rsync para ignorar arquivos de origem com nomes começando com.
. Desde que eu estou usando--delete
, eu também disse para não tentar excluir olost+found
diretório no destino davfs.fonte