BASH: backup incrementeel

Het vorige backup script is erg beperkt in zijn mogelijkheden, immers backupped het altijd de gehele directory. Mooier is om een incrementeel backup script te hebben, zodat alleen de gewijzigde bestanden in de backup meegenomen worden. Voor een directory met afbeeldingen of documenten zou dat een betere oplossing kunnen zijn.

Ook een incrementele backup is eenvoudig te maken via een bash script.

Het script

#!/bin/bash
trgdir="/data/backup/xxx/"
date=$(date "+%Y-%m-%d %H;%M")
fn="xxx $date.tar"
tar czvf "$trgdir$fn" `find /data/xxx -mtime -1 -type f`
gzip "$trgdir$fn"

Sla het vervolgens op en voeg het toe aan de crontab.

Toelichting

Het “incrementele gedeelte” zit ‘m in het volgende commando:

find /data/xxx -mtime -1 -type f

De tool find maakt het mogelijk om objecten binnen een bestandssysteem te vinden. De eerste parameter is de map waarin gezocht moet worden en wijst zichzelf. De parameters die daarna volgen worden hieronder toegelicht:

-mtime
staat voor: “last modified” datum
waarde: gewijzigd n*24 uur geleden

-type
staat voor: object type
waarde: alleen files (“f”) meenemen
opmerking: neem geen directories mee, want die worden in zijn geheel ingepakt ongeacht of de onderliggende files gewijzigd zijn.

Het resultaat van dit commando is een lijst van bestandsnamen (inclusief pad) van gewijzigde bestanden binnen de opgegeven directory. Met dat resultaat kan tar vervolgens de gewijzigde bestanden inpakken.

voor meer informatie, zie de manpage find

Leave a Reply

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