Eu recomendo editar isso para explicar exatamente qual ação produziu essa mensagem de erro. (Por exemplo, se é a saída de um comando, você pode incluir o comando completo.)
@DJCrashdummy se você escrever seu comentário como resposta, vou votar novamente.
guettli
@ guettli eu escrevi isso apenas como comentário, porque o Syncopoli é apenas um cliente rsync (por enquanto).
DJCrashdummy
Respostas:
50
Na verdade, usando rsync sobre MTP / usb
É mais fácil do que todo mundo está dizendo, primeiro observe que quando o GVFS montar a montagem MTP, ela estará disponível em. Você pode forçar isso abrindo o telefone em um navegador de arquivos gráfico (thunar / nautilus / etc)
/run/user/$UID/gvfs
entra lá. Supondo que você tenha um dispositivo mtp, isso deve funcionar:
$ cd /run/user/$UID/gvfs/mtp*
Encontre para onde você deseja transferir os arquivos também e depois os sincronize novamente
--inplaceEu altamente sugerir o uso --inplacesem a qual mtp pode querer copiar o arquivo de um novo, e em seguida, mude o nome para o antigo. Isso pode resultar na cópia do arquivo para o cartão SD duas vezes: uma vez para a transferência mtp para o cartão SD e outra vez porque o driver MTP pode não suportar (mv), pode (cp / rm) sob o capô para ser seguro .
leia man rsync para uma descrição de --verbose, --progress, --recursivemas eles são bastante auto-documentado.
--omit-dir-times--no-perms são necessários porque o mtp não suporta isso.
Eu adiciono as seguintes opções --omit-dir-times --no-perms --ignore-existing. O Rsync falha ao definir os carimbos de data / hora do diretório no MTP. Tenho certeza de que "sem permissões" é o padrão, mas gosto de especificá-lo. Ignorar arquivos existentes permite que ele continue de onde parou.
Stephen Ostermiller
4
Por que --ignore-existing? Isso está apenas perdendo redundância. Você sempre pode --size-onlyreduzir a sincronização com a listagem de diretórios e não as somas de verificação. Vou adicionar o --omit-dir-timese --no-permsporque isso parece útil, e me lembro de ter recebido um erro no final sobre isso.
Evan Carroll
O Rsync tem problemas para definir os carimbos de hora corretamente sobre o MTP corretamente para mim, portanto, sem --ignore-existingele , ele tenta sincronizar todos os arquivos. Eu gosto da sua --size-onlysugestão. Vou tentar isso da próxima vez.
Stephen Ostermiller
3
Eu também uso colocar a barra final no destino, então eu não tenho que usar uma estrela na fonte:~/Videos/ ./
Stephen Ostermiller
Também precisei adicionar '--delete-after' para excluir os arquivos que eu já havia removido da pasta de músicas do computador. Portanto, o comando completo é: rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-existente --delete-after / home / user / MUSIC /.
happyskeptic
39
Usando sshelper
Encontrei esta solução:
Instale o sshelper no dispositivo (não é necessário um dispositivo raiz, disponível no google play market)
Na minha WLAN, o dispositivo é chamado de "android". Mas você pode usar o IP, se não puder dar um nome de host ao dispositivo.
Edite ssh-config local, para alterar a porta padrão do host "android"
.ssh/config
host android
Port 2222
Inicie o sshelper no dispositivo.
Conecte o dispositivo Android à sua WLAN.
rsync -rvlc Música android: SDCardLink /
AtualizarI prefere -rvlca -avez que você começa um monte de avisos desde a definição de permissões e time-stamps não funciona. A opção -ctorna a segunda sincronização muito mais rápida.
I prefere -rvl --size-onlya -avez que você começa um monte de avisos desde a definição de permissões e time-stamps não funciona. A opção --size-onlytorna a segunda sincronização muito mais rápida.
Infelizmente, é necessário algum tempo para que os aplicativos de música vejam os novos arquivos. Reiniciar o dispositivo ajuda.
Uma maneira alternativa de utilizar rsync com SSHelper sem ter de modificar .ssh / config: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin
1
@ guettli qual opção de soma de verificação -c para sincronizar arquivos de música? isso pode diminuir significativamente
EdiD 14/02
5
@guettli do rsync man: -c, --checksum. Sem essa opção, o rsync usa uma "verificação rápida" que (por padrão) verifica se o tamanho e o horário da última modificação de cada arquivo coincidem entre o remetente e o destinatário. Essa opção altera isso para comparar uma soma de verificação de 128 bits para cada arquivo que possui um tamanho correspondente. A geração da soma de verificação significa que os dois lados gastarão muitas E / S de disco lendo todos os dados nos arquivos na transferência, portanto isso pode tornar as coisas mais lentas.
EdiD 23/02
4
@ Guettli Eu acho que --size-onlyseria a solução mais rápida. No entanto, não é tão salvar como-c
niels
2
Usei o tethering USB e recebi transferências muito mais rápidas. O comando a seguir funcionou para mim depois que eu executei o SSHelp e ele mostrou o IP 192.168.1.5que pode ser diferente toda vez:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Organic Addict
3
O backup rsync para Android pode ser configurado para sincronizar ao contrário, ou seja, de um host Linux para um dispositivo Android.
E com a ajuda do LlamaLab Automate, é possível configurar o dispositivo Android para sincronizar automaticamente em condições específicas, por exemplo:
às 5 da manhã,
quando o telefone estiver conectado a um Wi-Fi específico e
Respostas:
Na verdade, usando rsync sobre MTP / usb
É mais fácil do que todo mundo está dizendo, primeiro observe que quando o GVFS montar a montagem MTP, ela estará disponível em. Você pode forçar isso abrindo o telefone em um navegador de arquivos gráfico (thunar / nautilus / etc)
entra lá. Supondo que você tenha um dispositivo mtp, isso deve funcionar:
Encontre para onde você deseja transferir os arquivos também e depois os sincronize novamente
Opções de Rsync
--inplace
Eu altamente sugerir o uso--inplace
sem a qual mtp pode querer copiar o arquivo de um novo, e em seguida, mude o nome para o antigo. Isso pode resultar na cópia do arquivo para o cartão SD duas vezes: uma vez para a transferência mtp para o cartão SD e outra vez porque o driver MTP pode não suportar (mv), pode (cp / rm) sob o capô para ser seguro .--verbose
,--progress
,--recursive
mas eles são bastante auto-documentado.--omit-dir-times
--no-perms
são necessários porque o mtp não suporta isso.fonte
--omit-dir-times --no-perms --ignore-existing
. O Rsync falha ao definir os carimbos de data / hora do diretório no MTP. Tenho certeza de que "sem permissões" é o padrão, mas gosto de especificá-lo. Ignorar arquivos existentes permite que ele continue de onde parou.--ignore-existing
? Isso está apenas perdendo redundância. Você sempre pode--size-only
reduzir a sincronização com a listagem de diretórios e não as somas de verificação. Vou adicionar o--omit-dir-times
e--no-perms
porque isso parece útil, e me lembro de ter recebido um erro no final sobre isso.--ignore-existing
ele , ele tenta sincronizar todos os arquivos. Eu gosto da sua--size-only
sugestão. Vou tentar isso da próxima vez.~/Videos/ ./
Usando sshelper
Encontrei esta solução:
Edite ssh-config local, para alterar a porta padrão do host "android"
Atualizar
I prefere-rvlc
a-a
vez que você começa um monte de avisos desde a definição de permissões e time-stamps não funciona. A opção-c
torna a segunda sincronização muito mais rápida.I prefere
-rvl --size-only
a-a
vez que você começa um monte de avisos desde a definição de permissões e time-stamps não funciona. A opção--size-only
torna a segunda sincronização muito mais rápida.Infelizmente, é necessário algum tempo para que os aplicativos de música vejam os novos arquivos. Reiniciar o dispositivo ajuda.
fonte
rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/
( stackoverflow.com/a/4630407/399105 )--size-only
seria a solução mais rápida. No entanto, não é tão salvar como-c
192.168.1.5
que pode ser diferente toda vez:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
O backup rsync para Android pode ser configurado para sincronizar ao contrário, ou seja, de um host Linux para um dispositivo Android.
E com a ajuda do LlamaLab Automate, é possível configurar o dispositivo Android para sincronizar automaticamente em condições específicas, por exemplo:
fonte