O melhor conselho de solução para backup para NAS em WAN

2

Qual é a melhor solução para backup diário da pasta Linux para o servidor NAS pela WAN? Aqui está a situação: Meu cliente expressou o desejo de que o código-fonte de seu projeto seja armazenado em backup diariamente no meu servidor local e depois exportado para o seu NAS. Ele me deu acesso ao NAS via protocolo FTP, e agora eu quero usar o cron scheduler para upload de ftp para seu servidor. Tudo bem, e como isso é feito?

    
por KernelPanic 08.03.2014 / 16:31

2 respostas

2

Como por comentários rsync é uma boa ferramenta para usar. O uso básico de rsync simplesmente espelha um diretório. Por exemplo:

rsync -a --delete /source/dir /backup/dir

fará com que o diretório de backup corresponda à fonte; se houver alguma coisa no backup que não esteja na fonte, ela será excluída ( --delete ) e, se houver algo em ambos, ela será atualizada no backup se o timestamp na fonte é mais recente (ou seja, o arquivo foi alterado).

Observe que você também pode usar rsync via SSH se não tiver o diretório remoto montado localmente (e a máquina NAS também executa um servidor ssh).

rsync -a --delete user@ip:/source/dir /backup/dir

Isso requer que você mantenha o diretório espelho em sua máquina de backup. Se você quiser fazer backups contínuos, poderá arquivar e compactar isso:

tar -cjf  backup.tb2 /source/dir

Isso pode ser extraído com tar -xjf backup.tb2 . Para evitar que cada backup substituísse o último, você poderia usar um registro de data e hora:

tar -cjf backup.'date +%m%d%y'.tb2 /source/dir

Isso produzirá um nome de arquivo com um registro de data e hora MMDDYY, como backup.030814.tb2 .

Então, esse é um script de duas linhas que você pode executar diariamente por meio do cron.

    
por 08.03.2014 / 18:03
2

A abordagem mais simples, supondo que você queira fazer o backup da pasta /foo , seria criar um pequeno crontab para executar rsync diariamente.

  1. Crie seu crontab executando crontab -e . Na janela do editor que irá aparecer, adicione esta linha (assumindo que o seu NAS é montado localmente, você pode usar ssh se não):

    @daily rsync -glprtu /foo /path/to/NAS/mount
    
  2. Feche a janela do editor. É isso aí, sua pasta será copiada para o seu NAS diariamente.

As opções rsync usadas neste exemplo são:

-g, --group                 preserve group
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-r, --recursive             recurse into directories
-t, --times                 preserve modification times
-u, --update                skip files that are newer on the receiver

Eu sugiro que você leia man rsync para mais opções, é uma ferramenta muito poderosa. Você pode, por exemplo, estar interessado em

--delete                delete extraneous files from dest dirs
-z, --compress              compress file data during the transfer
-C, --cvs-exclude           auto-ignore files in the same way CVS does

UPDATE: Se você precisar para fazer isso via ftp, eu recomendo que você monte seu NAS localmente primeiro:

  1. Instale curlftps

    sudo aptitude install curlftpfs
    
  2. Edite /etc/fstab e adicione uma linha para o NAS:

    curlftpfs#ftpUsername:ftpPassword@ftp://ftpUrl /localDirectory fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,utf8  0   1
    

Em seguida, aponte seu comando rsync para o ponto de montagem local.

    
por 08.03.2014 / 17:39