Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2009-03-03 01:38:36.
Revizia anterioară   Revizia următoare  

Backup infoarena

Una dintre responsabilităţile administratorilor infoarena este aceea de păstra conţinutul site-ului în siguranţă, astfel încât să poată fi recuperat în urma unor evenimente excepţionale nedorite. Este posibil ca server-ul pe care găzduim site-ul să pice, este posibil să pierdem informaţii importante, fie accidental, fie din cauza unor persoane rău intenţionate. În orice caz, este necesar să ne protejăm de astfel de evenimente cu ajutorul unui backup periodic.

Câţiva administratori infoarena vor face backup periodic folosind calculatoarele lor personale. Scopul este să obţinem un sistem redundant de backup, complet automatizat şi uşor de monitorizat. Pagina aceasta explică acestor administratori ce trebuie să facă pentru a-şi configura staţiile de lucru personale în acest sens.

Cerinţe

  • Sistem de operare Linux
  • rsync, şi client ssh (Cel mai probabil sunt deja instalate.)
  • O copie locală de infoarena, instalată, configurată şi funcţională. Ai grijă să o menţii la o versiune actuală, întrucât scriptul de backup se poate modifica în timp. (Este OK să foloseşti chiar copia pe care în mod normal dezvolţi cod pentru infoarena. Nu e nevoie să configurezi şi evaluatorul. Nu este necesar ca server-ul Apache sau MySQL să ruleze.)
  • Cel puţin 10 GB spaţiu de stocare disponibil.

Basic Setup

Procesul de backup va rula cu permisiunile unui utilizator oarecare de pe sistemul tău. Nu are importanţă ce utilizator e, însă e mai simplu să fie chiar utilizatorul pe care îl foloseşti în mod obişnuit când lucrezi la calculator. În continuare voi presupune că numele tău de utilizator este wickedman şi că eşti logat pe calculator.

  1. Generează o cheie privată fără parolă pentru acces la contul de backup de pe server-ul infoarena.
    $ ssh-keygen -f ~/.ssh/ia-backup
  2. Autorizează cheia ta pentru backup. Acest pas necesită acces [email protected]. Un mod de a-ţi autoriza cheia este să execuţi comanda următoare de pe calculatorul tău:
    $ ssh -p 21883 [email protected] echo `cat ~/.ssh/ia-backup.pub` '>> /home/backup/.ssh/authorized_keys'
  3. Testează accesul la [email protected]:
    $ ssh -i ~/.ssh/ia-backup -p 21883 [email protected] 'echo `whoami`@`hostname`'
    ar trebui să afişeze backup@infoarena.
  4. Crează un director pentru backup şi asigură-te că ai suficient spaţiu liber pe partiţia respectivă. (Vezi cerinţe.) Scriptul de backup e configurat să folosească în mod implicit ~/backup/infoarena. Dacă vrei să foloseşti alt director va trebui să îl modifici corespunzător.
    $ mkdir -p ~/backup/infoarena
  5. Execută scriptul de backup. Mai jos presupun că eşti în directorul în care ai făcut checkout la infoarena, dar nu e obligatoriu.
    $ ./scripts/mirror-backup
    Atenţie! Scriptul va începe să copieze toate ataşamentele de pe infoarena.ro, adică peste 6.7GB! Asigură-te că ai o conexiune cât poţi de bună ca să nu dureze o veşnicie. Desigur, următoarele apelări vor transfera mult mai puţine date.
  6. În final ar trebui să ai o structură de directoare similară cu cea de mai jos:
    $ find ~/backup/infoarena -type d
    /home/wickedman/backup/infoarena
    /home/wickedman/backup/infoarena/attach
    /home/wickedman/backup/infoarena/attach/200910
    /home/wickedman/backup/infoarena/archive
    /home/wickedman/backup/infoarena/archive/db
    /home/wickedman/backup/infoarena/archive/hackers
    /home/wickedman/backup/infoarena/archive/hackers/trac
    /home/wickedman/backup/infoarena/archive/hackers/reviewboard
    /home/wickedman/backup/infoarena/archive/hackers/svn
    /home/wickedman/backup/infoarena/archive/conf

Cu fiecare lansare, ./scripts/mirror-backup sincronizează ultimele versiuni de backup locale cu cele de pe infoarena.ro şi poate fi rulat cu încredere de oricâte ori.

Backup automat zilnic

În continuare vom configura calculatorul să facă backup automat în fiecare zi folosind utilitarul anacron. Spre deosebire de cron, acesta nu necesită ca staţia de lucru să fie deschisă la o anumită oră din zi. Eşti liber să închizi şi să deschizi calculatorul oricând doreşti.

  1. Instalează anacron. (Pe Ubuntu merge apt-get install anacron.)
  2. Editează /etc/anacrontab
    $ sudo vim /etc/anacrontab
    şi adaugă la sfârşitul fişierului linia următoare. Atenţie! Ajustează corespunzător textul îngroşat!
    1 30 infoarena-backup sudo -H -u wickedman /home/wickedman/d/infoarena/scripts/mirror-backup | mail -s "infoarena backup notice" [email protected]
    (Asta înseamnă că job-ul „infoarena-backup” se execută odată pe zi, la 30 de minute după ce ai pornit calculatorul. Folosesc sudo -u ca să execut job-ul cu permisiuni de utilizator obişnuit.)
  3. Testează configuraţia anacron.
    $ sudo anacron -fnd infoarena-backup
    Anacron 2.3 started on 2009-03-03
    Will run job `infoarena-backup'
    Jobs will be executed sequentially
    Job `infoarena-backup' started
    Job `infoarena-backup' terminated (mailing output)
    Normal exit (1 job run)