Periodisk backup i Linux

Jeg sitter som kjent å skriver prosjektet mitt i LaTeX på en Linux maskin. Som jeg nevnte i posten om Studenter og ny pc ser jeg ikke poenget med å bruke penger på en eksterndisk til backup når vi har tilgang til en sambashare via NTNU.

Imidlertid har jeg ikke tatt noe særlig backup, da jeg ikke gidder/orker å kopiere over (kun den som har mistet noe viktig tenker på backup sies det). Imidlertid tenkte jeg at det måtte være mulig å automatisere dette. Jeg tenkte noe slik som “cron-job og noe shell-scripting kombinert med at jeg har hjemmeområdet permanent mappet opp når jeg er på NTNU-nettet.

Dermed hørte jeg litt med Alex, og kombinert med litt googling og hacking lagde jeg meg et script som en gang i timen (gitt at jeg har tilgang til hjemmeområdet) lager en tar.gz fil av prosjektmappa mi og lagrer den med et timestamp på hjemmeområdet. Den tar vare på de 10 forrige versjonene, dvs 10 timer tilbake i tid. Det skriver også til en logg-fil hva som blir gjort når.

I OpenSource-ånden deler jeg ut scriptet mitt her, og tar gjerne imot forslag til forbedringer og kritikk på ting som er gjort hakkandes galt. I prinsippet skal det funke for å regelmessig kopiere en mappe over på en annen (montert) mappe.

Så kan man jo spørre seg hvorfor jeg ikke jobber direkte mot hjemmeområdet.. Da hadde jeg aldri lært meg shell-scripting, og det kan jo tenkes at jeg av og til jobber uten tilgang til det.

FIla ligger tilgjengelig her: backup.sh

For å bruke den må du huske å chmodde den slik at den kan kjøres:
chmod +x backup.sh
Du vil sikkert også gå inn i den og endre mapper etc. Den er greit kommentert, så det skal ikke være noe problem.

Til slutt vil du legge den inn i crontab, bruk da:
crontab -e
og legg inn noe slikt som:
0 * * * * /path/to/backup.sh >> /path/to/logfile
for å ta backup en gang i timen.

Elegant? Tja. Praktisk? Ja. Morro? for de interesserte 🙂

5 thoughts on “Periodisk backup i Linux

  1. Atle

    Bare hyggelig!

    Får jeg spørre hva du eventuelt har tenkt å bruke det til? Fungerer slikt på en mac åsså, eller har du en linux maskin stående?

  2. Audun Sæther

    Jeg bruker noe lignende for backup hver natt, men bruker derimot rsync. Uansett, bash og cron er kraftige, elegante, praktiske og morsomme verktøy 🙂

  3. Atle

    Jeg ble tipset om rsync, men all den tid jeg har området montert opp så jeg ikke det helt store poenget i dette. Imidlertid kan det også skyldes at jeg er helt blank på dette feltet, så hvis du føler deg kallet må du gjerne skrive noen ord om dette (og si fra her).

  4. Audun Sæther

    Vel, det kommer helt ann på hva man skal ta backup av. Er det snakk om små filer er “zipping” av filer en helt grei løsning. Jeg tar derimot backup av alt (bilder, video, dokumenter, web-greier, innstillinger, e-post), og da gir jo rsync meg den fordelen at den kun tar backup av filer som har blitt endret. Skulle jeg pakket ned alle filene hver gang ville jeg hatt tar.gz-filer på 50 GB.

    Ulempen er uansett tiden. Pakking tar enormt mye tid, men Rsync må jo også se over alle filer for å vite om de har blitt endret og trenger å taes backup av.

    Jeg har forøvrig skrevet litt om rsync, om det er interessant: http://izte.net/blogg/backup_med_rsync.

Leave a Reply

Your email address will not be published. Required fields are marked *