rsync para copiar arquivos que foram alterados

42

Preciso copiar alguns arquivos de um diretório específico para um local diferente diariamente. Quero copiar apenas as alterações, portanto, planejo usar rsync. Esses arquivos seguem a seguinte convenção de nomenclaturamysql-bin.*

Meu comando tem a seguinte aparência

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

Minha confusão é que, como estou planejando copiar apenas alguns arquivos de um diretório, e não o 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.

Zama Ques
fonte

Respostas:

51

Parece bom. Embora por que você esteja usando a -zopção para compactar a transferência? Essa opção é normalmente usada quando você está copiando para um servidor rsync remoto em uma rede lenta. Nesse caso, ele comprimirá e descompactará instantaneamente os arquivos, o que aumentará apenas o uso da CPU sem nenhum benefício.

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

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

Portanto:

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

e quando estiver feliz que os arquivos estejam listados corretamente na execução a seco, remova o nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
garethTheRed
fonte
3
Como diz na página man --dry-runbandeira é mais comumente usado em conjunto com a --verbosebandeira
Benjamin Leinweber