tempo rsync para atualização com exclusões

0

Eu tenho mexido com o rsync para empurrar minha biblioteca de músicas (gerenciada pelo banshee) para o meu sdcard, que eu uso para o meu telefone.

Isso me ajuda a entender o fato de que eu não tenho um bom programa de GUI para sincronizar músicas do meu celular. Embora eu sempre tenha odiado o iTunes, admito, foi ótimo gerenciar músicas e outros arquivos armazenados no programa entre um dispositivo externo e o PC. Eu não afirmo que o rsync não é um utilitário incrível, eu sei que é, eu não sou tão habilidoso quanto esperava.

Percorrendo a página man algumas vezes eu criei os dois scripts a seguir:

syncToSdCard.sh:

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r --delete-delay /home/user/Music/ /media/user/0741-C987/Music/;

updateSdCardOnly.sh

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r -u --inplace -m --prune-empty-dirs -e --delete /home/user/Music/ /media/user/0741-C987/Music/;

Meu objetivo é atualizar o diretório no sdcard com o conteúdo do diretório em minha máquina e limpar tudo o que foi movido ou removido do diretório de origem.

O primeiro script rsync (syncToSdCard.sh) faz isso; no entanto, leva muito tempo para ser executado.

O segundo script rsync, embora contenha a opção delete, envia apenas as mudanças da minha máquina local (novos arquivos e arquivos atualizados) para o sdcard; esse script é extremamente rápido.

O que eu estou procurando é alguém que possa me ajudar a mesclar os dois juntos, para obter uma atualização rápida com a exclusão de arquivos que não existem mais na origem (pc) como eles fazem no destino (sdcard). / p>

Alguém por favor pode me ajudar com isso? Também estou aberto a formas alternativas de alcançar o mesmo objetivo, se possível; O rsync é apenas o melhor utilitário que eu posso imaginar para esse tipo de operação.

Obrigado.

    
por anonymous 18.09.2013 / 05:12

1 resposta

0

Acho que encontrei a resposta para minha pergunta. Eu estava brincando com mais parâmetros, mais ou menos, tentando combinar os dois scripts e surgiu com o seguinte:

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r -u --inplace -m --prune-empty-dirs --delete-delay /home/user/Music/ /media/user/0741-C987/Music/;

Até agora, ele fez o que eu tenho procurado com sucesso, ele cria uma lista de mudanças específicas do que precisa ser enviado ao dispositivo e faz isso sem fazer uma comparação lenta em cada arquivo, então segue com um eliminação rápida.

Eu não marcarei isso como completo ainda, até que eu tenha testado mais algumas vezes para verificar se é exatamente o que estou procurando.

Se alguém realmente conhece uma maneira melhor de alcançar este resultado do que fazendo o que eu fiz aqui, por favor me avise!

Obrigado.

    
por anonymous 07.10.2013 / 23:48