dropboxI en tidigare artikel Dropbox på Raspberry PI beskrev jag hur man får igång lagringen på Dropbox, i denna artikel visar jag hur man gör en automatisk backup av innehållet i hemkatalogen varje natt och behåller backupen i 10 dagar. Detta är inget avancerat backupskript med full och incremental backups utan ett enkelt skript som tar en kopia av hela hemkatalogen och packar ihop den till en fil med användarnamn, dagens datum och tid. Efter ett visst antal dagar tas backupen bort om man kör skriptet varje dag.

Börja med att lägga in backupskriptet.

och klistra in följande kod

och gör filen exekverbar

Om du du kör det och du har fått allting att fungerar i den tidigare artikeln om hur man sätter upp Dropboxkopplingen så bör du se något liknande

Man kan också kontrollera att den verkligen kopierades

Nu vet vi att backupen fungerar så nu är det dax att köra skriptet varje dag.

Detta löses med hjälp av Linux-demonen cron som kan köra kommandon med jämna intervall.

Man kan köra kommandon som root eller som en vanlig användare, men sträva efter att inte köra kommandon med högre rättighet än vad som behövs för att minska risken för intrång/missbruk.

Så, i detta fall kan vi köra kommandot som användare pi, man ändrar i cron för användaren genom att köra crontab med flaggan -e för editering. Som standard använder sig crontab av editor vi men man kan välja valfri editor genom an sätta miljövariabeln  EDITOR till önskad editor. För att editera med nano kör man

då bör ni se någon som liknar

man lägger in ett kommando per rad och börjar med vilken tid eller intervall som kommandot ska köras, i detta fall vill vi köra kommandot /usr/local/bin/backup_homedir varje natt kl 24.00 (eller 00.00 i datortid), skriv in raden

på en ny rad, 00 00 betyder timme 0, minut  0 dvs 00:00 och sedan betyder stjärnorna, varje dag i månaden, varje månad och slutligen varje dag i veckan. Slutet på raden 2>&1 >> ~/backup.log betyder, 2>&1 skicka vanligt text från kommandot och felmeddelande till samma ställe, >> ~/backup.log betyder lägg till (>>) i slutet på filen ~/backup.log. Tecknet ~ betyder hemmakatalog så för användare pi blir ~/backup.log samma sak som /home/pi/backup.log

Varför man skickar all text från kommandot till en fil är dels att man kan gå in i den och se om allt gått bra men cron har även den funktionen att alla skript som körs av cron ska bara skicka ut text om någon gick fel, så och någon kommer ut från ett cron-jobb så skickar detta via epost till användaren.

spara med ^X sedan Y och sedan RETURN

Med kommandon crontab -l kan man lista vilka kommandon som finns i crontab-file

Om ni undrar så har jag ställt antalet dagar i mitt backskript till 3 för att snabbare visa hur det fungerar. Om ni själv vill ändra på hur länge ni behåller en backup så ändrar ni i filen /usr/local/bin/backup_homedir och byter ut 10 på raden RETENSION=10 till de antal dagar som ni vill ha backupen kvar.

När kommandot har gått ett par dar kan man kontrollera att allt verkar OK genom att lista filerna i sin dropbox med kommandot dropbox_uploader list

man kan även titta i logfilen som uppdateras varje gång som kommandot körs

I loggfilen kan man se att filer skapas och tas bort när de blir för gamla. I detta fall kan man även se att det inte gick så bra den 19 Maj, kan ha varit att nätet eller dropbox inte gick att nå. Man kan bygga mer komplexa backupskripts som t.ex kontrollerar att backupen gick bra och t.ex försöker igen om en timme. Men syftet med artikeln var att få igång ett enkelt backupskript som sparar undan det man har i sin hemkatalog.

Viktigt att komma ihåg är att varje användarkonto som använder skriptet måste ha konfigurerat kopplingen mot dropbox. Ett sätt är att kopiera den gömda filen .dropbox_uploader som finns i användarens hemmakatalog. Men detta innebär att båda kontona kommer åt samma dropbox katalog och därmed även backuperna från det andra kontot

T.ex man har även en användare som heter kalle som ska göra backup till samma dropbox katalog, först gör man en kopia av den och ger kopia rätt rättigheter och ägarskap

Nu kan man logga in på kalle och följa instruktionerna i denna artikel, alternativ sätter man upp en egen katalog för kalle genom att följa instruktionerna i artikeln Dropbox på Raspberry PI igen, man behöver inte ha flera dropboxkonton för detta så man kan skapa flera olika kataloger/appar, detta ger en högre säkerhet då de olika kontona inte ser varandras backupfiler.