rsync: exclua apenas arquivos estranhos com um registro de data e hora anterior ao mais recente no diretório de origem

1

Estou tentando manter dois diretórios pares em sincronia usando o rsync. O problema que tenho é que novos arquivos podem ser adicionados ou excluídos em qualquer diretório antes que ocorra uma sincronização.

Se uma exclusão ocorrer em um, a opção --delete excluirá esse arquivo no outro local, desde que ele tenha sido escolhido como o primeiro destino. Caso contrário, se o diretório com o arquivo antigo ainda fosse escolhido como a fonte inicialmente, o arquivo seria copiado para o diretório do qual nós o excluímos anteriormente.

Se um arquivo é criado em um e esse diretório não é escolhido como fonte, o arquivo será classificado como estranho pela opção --delete e será removido, apesar de ser uma adição válida.

Existe uma maneira de fazer exclusões ou exclusões mais inteligentes com base em registros de data e hora? Caso contrário, só vejo o rsync como uma ferramenta mestre-escravo e não consigo lidar com uma relação peer-peer.

    
por Jeff 09.02.2011 / 12:17

1 resposta

1

Você pode hackear um scash bash com base em carimbos de data e hora usando CURL -I , que fornece informações de cabeçalho para os arquivos.

  1. Verifique o timestamp:

    curl -I http://somesite.com/somefolders/somefile.script | grep Date:
    Date: Fri, 11 Feb 2011 06:24:40 GMT
    
  2. Converter tempo em timestamp:

    date --utc --date "Fri, 11 Feb 2011 06:24:40 GMT" +%s
    
    1297405480
    
  3. Use o registro de data e hora para comparar arquivos:

    if [[ time1 == time2 ]]; then curl (upload file)
    

Eu encontrei isso para o Dropbox: link

    
por 11.02.2011 / 08:49