Como uso o rsync para fazer backup do meu Mac em um NAS?

5

Eu preciso fazer backup de vários diretórios para o meu NAS (ele basicamente aparece como um compartilhamento de rede no Finder). Eu não quero torná-lo inicializável, só precisa fazer backup de alguns diretórios. Eu também gostaria de tê-lo executado todas as noites. Eu tentei olhar para a documentação do rsync, mas ainda não consegui descobrir.

Eu também dei uma olhada no rsyncx, mas não consigo instalá-lo. Não se importe com o suporte do Time Machine, só precisa de um backup simples.

    
por swilliams 16.08.2009 / 23:15

4 respostas

4

O seu NAS tem um serviço rsync configurado? Alguns suportam (por exemplo, ReadyNAS). Se assim for, você pode fazer algo assim:

#!/bin/sh

DEST=xx.xx.xx.xx::backup/swilliams/
RSYNC_OPTS='-vaC --exclude ".DS_Store"'

/usr/bin/rsync $RSYNC_OPTS --exclude "build/" --exclude "dist/" --exclude "*.pyc" ~/code $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Music $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Pictures $DEST
/usr/bin/rsync $RSYNC_OPTS --exclude "Virtual Machines*" ~/Documents $DEST

Você precisará alterar o DEST para o endereço IP do seu NAS e alterar os caminhos e outras coisas para se adequar.

Se você salvar isso como, digamos, ~/bin/backup.sh (e certifique-se de fazer chmod a+x ~/bin/backup.sh ), então você pode executá-lo quase usando o cron. Execute crontab -e e adicione esta linha:

0 0 * * *      $HOME/bin/backup.sh > $HOME/logs/backup.log 2>&1

( 0 0 * * * significa: executar à meia-noite todos os dias, todos os meses. A primeira coluna é minutos, então 3am é 0 3 * * * . Isso gravará os registros em ~/logs , portanto, verifique se o diretório existe ou coloque-os em outro local )

Se o seu NAS não suportar o rsync como um serviço, então acho que ele deve funcionar se você mudar o início para isto:

#!/bin/sh

mount_smbfs //user:[email protected]/backup /Volumes/backup
DEST=/Volumes/backup

e no final:

umount /Volumes/backup

(se o seu compartilhamento estiver aberto, você pode deixar o usuário e a senha)

Se você quiser backups com timestamp, experimente o comando date. por exemplo,

DATE='date +%Y%m%d'

acesse $ DATE no seu script.

Se algo não estiver claro para você, basta perguntar.

    
por 17.08.2009 / 00:05
2

Ao usar o rsync para backup, a maioria das opções de importação a serem observadas são --backup e --backup-dir , sem as quais você está fazendo uma cópia, não o backup. Como no backup, você deseja acompanhar as alterações, em vez de apenas substituí-las. O que eu uso é isto:

#!/bin/sh

RSYNCOPTS="-e ssh --delete --one-file-system --relative --archive -P --verbose --compress --recursive"
BACKUPDIR="/backup/"
BACKUPINCR="${BACKUPDIR}/incr/$(date -I)"
BACKUPROOT="${BACKUPDIR}/root/"
EXCLUDES="--exclude-from /home/juser/.backup-excludes"

# Make sure we use a new incr backup directory on each run
NUM=0
while [ -e "${BACKUPINCR}-${NUM}" ]; do
  NUM=$(($NUM  + 1))
done
BACKUPINCR="${BACKUPINCR}-${NUM}"

for i in /home/ /etc/; do
  rsync $RSYNCOPTS $EXCLUDES--backup --backup-dir="$BACKUPINCR" "$i" "$BACKUPROOT"
done

Isso fornece uma cópia em /backup/root/ e um backup de todos os arquivos alterados ou excluídos em /backup/incr/$DATE-$NUM .

Esse script usa --one-file-system , portanto, ele não cruza as bordas do sistema de arquivos e usa --relative para obter os nomes de caminho absoluto preservados.

Se você quiser um pedantico extra, você pode adicionar --checksum , que irá verificar todos os arquivos em vez de apenas usar o timestamp para pular. A vantagem é que seu backup terá uma chance melhor de ficar livre de saltos de bit, mas ele será executado por um bom tempo.

Outro conselho geral, sempre use --dry-run quando você joga com uma nova opção, onde você não tem certeza do que eles fazem, especialmente quando se trata de --delete e amigos, como você não vai acabar seu backup já existente por acidente.

    
por 29.08.2009 / 13:42
0

rsync -av path_to_files path_to_place_on_NAS

executá-lo via cron, crontab -e Embora você precise conhecer o vi para isso e procurar a sintaxe do crontab.

Isso funciona se os arquivos pertencerem a você. Eu acho que você pode querer a opção E (-avE) para pegar o fork do recurso, que não é realmente usado no OS X, como eu o entendo, mas apenas o seu material clássico, que não funciona mais.

Aqui estão alguns links, você não precisa mexer com o material do ssh.

simples: link

complexo: www.bombich.com/mactips/rsync.html

    
por 17.08.2009 / 00:05
0

Veja minhas instruções no link e nos artigos subseqüentes para a sincronização de músicas e listas de reprodução do iTunes com o seu Synology usando o rsync . Sincronização da lista de reprodução do iTunes: link

Divirta-se!

    
por 28.03.2013 / 15:58