Uso de rsync no estilo Time Machine

4

Parece que estou tendo problemas para fazer com que esse script rsync funcione da maneira que preciso. A fonte é aqui . A ideia por trás disso é criar backups incrementais, semelhantes ao que o Time Machine do MacOS faz. Acho que entendo como todas as partes funcionam e modifiquei para meu próprio uso. O problema é que, enquanto os backups estão sendo feitos, rsync também está gerando erros. Minha versão do script é:

#!/bin/bash

# create a date variable for backup naming
date='date "+%Y-%m-%dT%H%M%S"'
backupdir="/media/USER/SEAGATE/MintBackups"

# use all options for -a for convenience, plus progess meter with -P
# --delete: delete from $DEST what isn't in $SOURCE
# --log-file: save a log file somewhere (make sure not to sync this)
# -C: don't sync cvs stuff (like .git directories)
# --exclude-from: use this file to exclude files from syncing
# --link-dest: hardlink in this directory
rsync -aPK --delete --log-file=tmp/rsync-log.log -C --exclude-from=sync_exclusions.txt --link-dest=/media/USER/SEAGATE/MintBackups/current /home/USER/ /media/USER/SEAGATE/MintBackups/USER-$date
rm -f $backupdir/current
ln -s $backupdir/USER-$date $backupdir/current

Estou usando o sinal -K para preservar os links simbólicos (já que não obtive os resultados corretos com apenas -a ). No entanto, o diretório para o qual estou ligando simbolicamente está na minha pasta do Dropbox, que eu excluí. Isso poderia ser um problema?

Além disso, a parte em que --link-dest é usado falha porque não existe antes do script ser executado, mas o autor original não mencionou nada sobre a criação do link antecipadamente. Assim, não sei se devo criá-lo de antemão ou se há algo mais acontecendo.

Os erros que estou recebendo são da seguinte forma:

2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot - 10242016 - 05:05:43 PM.png.IGSO2W" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-03-06 05:55:01.png.qY6sWu" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-03-08 09:05:02.png.4PbFU2" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-03-09 11:48:34.png.mqR1VA" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-03-10 12:53:35.png.WuoxZ8" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-04-28 11:34:34.png.goaX3G" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-05-03 19:31:07.png.9Wllaf" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-05-30 15:38:01.png.kFg2hN" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-06-03 20:55:37.png.vNj3sl" failed: Invalid argument (22)
2016/12/30 23:24:50 [26974] rsync: mkstemp "/media/USER/SEAGATE/MintBackups/USER-2016-12-30T232102/Pictures/.Screenshot from 2016-07-01 12:16:11.png.FReAGT" failed: Invalid argument (22)

Eu também recebi um erro que o rsync não conseguiu criar um symlink no disco externo, que a operação foi proibida.

Em outras palavras, não sei exatamente qual erro (s) estou cometendo na execução deste script. A lógica no script original é o som? Em caso afirmativo, eu o modifiquei de alguma forma que levaria a que ele não funcionasse corretamente?

ATUALIZAÇÃO: li recentemente outra postagem aqui que me deu algumas dicas sobre links simbólicos em unidades externas. Ter um link para o backup mais recente não é essencial, pois tenho outras maneiras de descobrir qual backup é o mais recente.

    
por alyms108 31.12.2016 / 10:22

1 resposta

0

Você pode dar uma olhada no rsnapshot , que faz exatamente o que você precisa (embora usando snapshots em vez de backups incrementais).

    
por 31.12.2016 / 17:11

Tags