rsync criando o diretório de destino com data antiga

2

Eu tenho um script que automatiza os backups - instantâneos de hora em hora da minha estação de trabalho xubuntu 12.04LTS. Ele cria um diretório nomeado de acordo com a data e hora, ou seja: 20140316-1033, representando 10:33 nesta manhã, 16 de março. O backup funciona sem problemas, com hard links funcionando como deveriam.

Isso mudou há dois dias. Eu o estava executando manualmente - esporadicamente e, finalmente, decidi que o cron automatizaria a tarefa, executando-a uma vez por hora. Eu mudei a verbosidade dentro do script, alguns ajustes sobre o que estava sendo copiado em cada backup. Então, aparentemente mudei alguma coisa e não consegui descobrir o que fiz.

Quando verifico a data de criação do diretório de destino, é sempre 14 de março de 2014 às 11:23. Até que comecei a mexer, funcionou corretamente. Desde então, as datas de criação são estáticas.

Por causa disso, tive que alterar o script para que ele use nomes de diretórios em vez de datas de criação dos diretórios para determinar o instantâneo mais recente para o instantâneo.

Qualquer coisa que você possa me indicar seria muito apreciada. Agradecemos antecipadamente.

SOURCE="/"
NOW=$(date +"%Y%m%d-%H%M")
BASE="/media/backup-internal/furgesson"
PREVIOUS=$(ls -r $BASE | head -1)

if [[ "$NOW" != "$PREVIOUS" ]];
then
    TARGET="$BASE/$NOW"
    LINK="$BASE/$PREVIOUS"
    OPTIONS="-avH --delete --link-dest=$LINK"
    rsync $OPTIONS --include-from '/home/carolyn/BackupScripts/include-list.txt' --exclude-from '/home/carolyn/BackupScripts/exclude-list.txt' $SOURCE $TARGET
fi

E aqui está a aparência da listagem de diretórios ...

total 124
drwxr-xr-x 25 root root 4096 Mar  7 04:04 20140314-0445
drwxr-xr-x 25 root root 4096 Mar 14 04:48 20140314-0512
drwxr-xr-x 25 root root 4096 Mar 14 04:48 20140314-0515
drwxr-xr-x 25 root root 4096 Mar 14 04:48 20140314-0821
drwxr-xr-x 25 root root 4096 Mar 14 04:48 20140314-0822
drwxr-xr-x 23 root root 4096 Mar 14 09:38 20140314-1013
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-1140
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-1314
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-2059
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-2128
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-2141
drwxr-xr-x 23 root root 4096 Mar 14 11:23 20140314-2144
drwxr-xr-x  3 root root 4096 Mar 14 11:23 20140315-0846
drwxr-xr-x  3 root root 4096 Mar 14 11:23 20140315-0848
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-0849
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-0856
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1125
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1135
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1138
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1405
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1409
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1433
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1533
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1633
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1733
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1833
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140315-1933
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140316-0733
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140316-0833
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140316-0933
drwxr-xr-x  4 root root 4096 Mar 14 11:23 20140316-1033
    
por Carolyn Marenger 16.03.2014 / 16:05

1 resposta

0

Alguns pequenos problemas:

  1. Você nunca deve analisar ls . Dito isso, neste caso, você parece ter controle total dos nomes de arquivos em seu diretório de destino, então ls pode ser uma opção. No entanto, recomendo que você use ls -tr para classificar por hora, em vez de alfabeticamente:

    PREVIOUS=$(ls -tr $BASE | head -n 1)
    
  2. Vamos dar uma olhada nas suas opções rsync . -a é igual a -rlptgoD :

    -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
    -t, --times                 preserve modification times
    

    O problema é o -t , isso preserva o tempo de modificação real dos arquivos de origem para que ele não defina a data de modificação do backup para a hora em que o backup foi criado até a hora da última modificação dos arquivos originais . Substitua -a por -rlog (removendo -t ) para definir a hora para o que você está esperando.

por terdon 16.03.2014 / 17:14