Ik heb mijn iTunes op de Mac zo ingesteld dat alle muziek bestanden (mp3 en m4a) op mijn Buffalo Linkstation Live komen te staan. Ze zijn dan namelijk ook altijd toegankelijk voor mijn multi room Sonos systeem. Werkt prima! Ik heb nu bijna al mijn CD’s geript en ondertussen ook wat gekocht via de iTunes music store. Ik bedacht me laatst dat het wel zaak was om te zorgen dat de muziek ook ge-backupped zou worden omdat ik anders bij een calamiteit alles opnieuw moet rippen en weer een hele tijd moet wachten alvorens de boel weer beschikbaar is via Sonos. En muziek luisteren doen we alleen nog via de Sonos!

Als de muziek gewoon op mijn MacBook Pro opgeslagen zou zijn zou ik een automatisch backup mechanisme hebben met Time Machine. Ik heb namelijk ook nog een Time Capsule en dat werkt perfect. Nu heb ik al een hele tijd een Freecom FSG NAS die ik tegenwoordig voornamelijk als printer server gebruik nu ik de Time Capsule en de Linkstation in het netwerk heb hangen. Dat ding heeft echter wel 150GB diskruimte dus meer dan genoeg om als backup voor mijn muziekbestanden te dienen (momenteel zo’n 24GB). Een handmatige kopie maken is natuurlijk mogelijk maar ook vragen om moeilijkheden want dat blijf ik niet doen. Ik ben een automatiseerder dus moet dit proces geautomatiseerd worden, maar hoe?

Het antwoord ligt in het feit dat beide NAS systeempjes onder water gebruik maken van een Unix of Linux variant als firmware en dan behoort rsync dus tot de mogelijkheden. Die van de FSG is sowieso Open Source en kun je eenvoudig bijwerken en voorzien van nieuwe functionaliteit. Ik had al eerder de FSG voorzien van uitgebreidere firmware (weliswaar een beta versie maar harstikke stabiel) en wat extra software, waaronder rsync. De informatie hiervoor had ik van de Open FSG website. Ik maak zelf gebruik van firmware versie 4.2.7. M.b.v. ipkg kan extra software geïnstalleerd worden. Voor onze toepassing hebben we rsync nodig. De FSG was dus al klaar voor de actie.

Dan de Linkstation Live. Even zoeken op internet bracht mij op de NAS-Central website. En in het bijzonder op deze pagina, waar uitgelegd wordt hoe je telnet toegang kunt activeren voor de Linkstation Live. Ik heb de instructies op die pagina gevolgd voor het permanent activeren van telnet. Ik heb niet de moeite genomen om ssh te activeren omdat de Linkstation toch alleen maar op mijn interne netwerk toegankelijk is. Toen ben ik op zoek gegaan naar informatie om rsync op de Linkstation te installeren maar dat bleek niet nodig: die zit er standaard al op! Nu moest ik alleen nog zorgen dat rsync op de juiste manier geconfigureerd was en in daemon mode geactiveerd zou kunnen worden via inetd (de eenvoudigste manier). Voor de configuratie van rsync in daemon mode dient rsyncd.conf in /etc. Die ziet er bij mij nu als volgt uit:

uid = root
gid = root
use chroot = yes
[music]
path=/mnt/disk1/share/Music
read only=yes

Hiermee is aangegeven dat een extern systeem de Music folder kan uitlezen onder het music alias (in rsync termen een module naam). Verder gecontroleerd dat /etc/inetd.conf de volgende regel bevat:

rsync stream tcp nowait root /usr/local/bin/rsync /usr/local/bin/rsync --daemon

Bij mij was dat al het geval. De Linkstation was nu klaar om als bron van de backup te dienen.

Terug naar de FSG. Ik had de FSG geconfigureerd voor ssh toegang (ik weet niet of telnet standaard wel aanwezig is). Inloggen met het admin userid en vervolgens su om als root te kunnen werken. Voor meer informatie over het inloggen e.d. zie de Open FSG site. Als eerste heb ik een doel folder aangemaakt voor de backup: /home/shared/Backup/Music. Vervolgens een shell script rsync.sh dat ik in /etc/init.d heb opgeslagen met de volgende inhoud:

#! /bin/sh
/opt/bin/rsync -auvz root@linkstation::music/* /home/shared/Backup/Music

Vervolgens ervoor gezorgd met chmod +x dat rsync.sh daadwerkelijk uitvoerbaar is. Ik heb daarna eerst rsync.sh maar eens handmatig uitgevoerd om een eerste backup te hebben. Nadat die succesvol verlopen is heb ik rsync.sh aan crontab toegevoegd. Dit moet op de ssh echter door het aanpassen van /etc/init.d/croninit. Ik heb aan dat bestand de volgende regel toegevoegd (na het NTP block):

# run my rsync script every night to copy stuff over from other NAS
echo "0 0 * * * root /etc/init.d/rsync.sh >/var/log/rsync.log" >> /etc/crontab

Tenslotte een keer /etc/init.d/croninit stop gevolgd door /etc/init.d/croninit start uitgevoerd en klaar is Klara!