25 Mars, 2015

Enkel och automatiserad säkerhetskopiering av viktiga filer med rsync

Om du inte tar regelbundna säkerhetskopior kan du se detta som ett gyllene tillfälle att få tummen ur.. och ta tag i det en gång för alla! Jag vet precis hur viktigt det är med säkerhetskopior - jag råkade nämligen formatera /home en gång när jag var trött och skulle förbereda min disk för Gentoo Linux.

Tack och lov har jag alltid en dagsfärsk säkerhetskopia av /home på min server! För olyckan kan vara framme när du minst anar det - på sätt som du aldrig kunnat föreställa dig. För det är jag ett levande bevis på.

Det finns många olika sätt att använda rsync på, jag själv använder mig av följande rad:

rsync -aAXv --delete --delete-excluded --exclude-from "$CONFIG/rsync-exclude" <källmapp> <målmapp> > rsync.log

Flaggorna -aAXv står för --archive, --acls, --xattrs och --verbose. I kort är det att filerna ska arkiveras, rättigheter och filattributer ska bevaras och --verbose är för att rsync ska berätta i detalj vad som händer, vilket sparas i min loggfil. Om du vill läsa mer om flaggorna rekommenderar jag hjälpfilen för rsync. Men om du bara är ute efter sunda val rekommenderar jag det jag kör med.

En sak att tänka på är att rsync gör skillnad på folder och folder/. Om du anger mappen folder som källa, kommer rsync att kopiera mappen folder, men om du anger mappen folder/, kommer rsync att kopiera innehållet i mappen.

rsync via SSH

rsync går också bra att använda via SSH, då blir kommandot lite annorlunda:

rsync -aAXv --delete --delete-excluded --exclude-from "$CONFIG/rsync-exclude" -e "ssh -p <port>" /home/johan/ <användare>@<adress>/media/HDD0/Backups/rsync/atlas-home > $HOME/rsync-home-$(date +%Y-%m-%d).log

Skippa loggfilen

Om du inte vill ha en loggfil går det bra att byta ut sista delen > <rsync.log> till &> /dev/null.

Kör rsync automatiskt via Cron

Min rekomendation är att köra rsync dagligen via Cron, för då blir det faktiskt av. Enklast är om du skapar en textfil i /etc/cron.daily med förslagsvis namnet rsync.sh med innehållet:

#!/bin/sh
<Kommando>

Och eftersom rsync bara kopierar de filer som ändrats innebär det ingen onödig data kopieras. Det vill säga att om du kör en daglig säkerhetskopia på /home, som ligger på säg 25GB, innebär det inte att rsync dagligen kopierar 25GB.

Lämna en kommentar:

Namn:

Hemsida (Valfritt):

Meddelande (kramdown-markup tillåtet):

Din kommentar kommer att publiceras när den har verifierats.