rsync para copiar arquivos que foram alterados

41

Eu preciso copiar alguns arquivos de um diretório específico para um local diferente diariamente. Eu quero copiar as alterações apenas, então planejando usar rsync . Esses arquivos seguem a seguinte convenção de nomenclatura mysql-bin.*

Meu comando é exibido da seguinte forma

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

A minha confusão é porque estou planejando copiar apenas alguns arquivos de um diretório em vez do conteúdo completo do diretório, usei * para copiar apenas os arquivos necessários. Só quero saber se meu comando está correto para conseguir o mesmo.

    
por Zama Ques 24.07.2014 / 09:11

1 resposta

49

Parece ok. Embora por que você está usando a opção -z para compactar a transferência? Esta opção é normalmente usada quando você está copiando para um servidor rsync remoto através de uma rede lenta. Neste caso, ele irá compactar e descompactar instantaneamente os arquivos, o que aumentará o seu uso da CPU sem nenhum benefício.

A opção -a (archive) implica na opção -r (recursiva), por isso não há necessidade de especificar explicitamente isso na linha de comando.

Você pode usar a opção -n (ou --dry-run ) para verificar seu comando. Ele mostrará o que faria sem realmente copiar os arquivos. Para realmente ver o que acontece, você também deve usar a opção -v (ou --verbose ).

Portanto:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

e uma vez que você esteja feliz que os arquivos estão listados corretamente no dry-run, remova o nv :

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
    
por 24.07.2014 / 09:47