arquivos rsync mais recentes que 1 semana

22

Eu quero executar o rsync no servidor A para copiar todos os arquivos do Servidor B quando eles forem mais recentes que 7 dias. (find. -mtime -7)

Eu não quero excluir os arquivos no Servidor B.

Obrigado pela sua ajuda.

    
por mm1 14.06.2011 / 14:49

2 respostas

27

Isso deve levá-lo a um caminho sólido

rsync -RDa0P \
    --files-from=<(find sourcedir/./ -mtime -7 -print0) \
    . user@B:targetdir/

Isso copia nós de dispositivos, permissões, registros de data e hora. Tenho certeza de que a opção -H não será precisa com --files-from

    
por 14.06.2011 / 15:50
5

Eu escrevi este script baseado no comentário do cybertoast para sincronizar de um servidor remoto para o local.

Você pode chamar o script com ./script.sh 3 ou ./script.sh 3 dry para uma execução a seco.

#!/bin/bash
TIME=$1
DRYRUN=$2

if [[ -z $TIME ]]; then
  echo "Error: no time argument."
  echo "Please enter the number of days to sync."
  exit 1
fi

if [[ $DRYRUN = "dry" ]]; then
  DRYRUNCMD="--dry-run"
  echo "Dry run initiated..."
fi

rsync -avz $DRYRUNCMD --files-from=<(ssh \
    user@remote "find path/to/data/ \
    -mtime -$TIME ! -name *.mkv -type f \
    -exec ls $(basename {}) \;") \
  user@remote:. .
    
por 17.11.2015 / 19:44

Tags