FolderMonitor

In het kort:
Applicatie voor backup en synchronisatie van Windows folders.

  • Windows service met bijbehorende taskbar tray applicatie voor monitoring en configuratie
  • Ondersteunt queueing van file events
  • Multi threading voor concurrent operation
  • Meerdere in en uitvoermappen simultaan te monitoren
  • Service onderkent automatisch wanneer volledige hersynchronisatie nodig is
 

foldermonitor

Technologie: C# .Net   Platform: Windows   Jaartal: 2013


Begin 2013 heb ik als verlaat verjaarscadeau een Synology DS212J voor mijzelf gekocht. Dat is een NAS (Network Attached Storage) met een eigen OS erop, waardoor het systeem veel meer is dan puur een NAS. De 'DS' staat voor Disk Station, maar dat is dus een understatement van jewelste.

Het OS is feitelijk Linux, en bevat naast NAS gerelateerde zaken ook nog applicaties voor bijvoorbeeld torrent download, webserver, antivirus, media player, foto bibliotheek en nog veel meer. Aangezien het Linux is, kun je zelf van alles en nog wat installeren als je je er een beetje in verdiept.
Deze website is met WordPress gemaakt en draait ook op de Synology.

Synology levert er een paar applicaties voor Windows bij, waaronder een foto uploader, een soort dropbox alternatief en een disk replicator. De laatste is bedoeld voor het maken van backups of synchronisatie van mappen die je zelf kunt bepalen. En dat kwam me goed uit, aangezien de standaard tools in Windows hiervoor niet toereikend waren.

Helaas was de disk replicator van Synology dat ook niet, oftewel weer tijd voor een hobby project. In dit geval dus een folder backup tool.

De FolderSyncer maakt gebruik van de FileSystem events van Windows, en draait als een Windows service in de achtergrond. Met behulp van een tasktray applicatie (die dus lekker rechtsonder in de taakbalk verborgen blijft totdat er iets te melden is) kun je in en uitvoermappen configureren en de meldingen van de service bekijken.

Omdat de Synology vaak pas uit slaapstand komt wanneer een computer opgestart wordt, is die af en toe niet direct beschikbaar. Daarom moest de service ook in staat zijn om events op te vangen en later te verwerken. Ik heb er dus een queue systeem ingebouwd, en tevens het afwikkelen van alle bestandsacties door aparte threads uit laten voeren om te vermijden dat apart gedefinieerde folders op elkaar moesten wachten.

De applicatie is natuurlijk niet specifiek Synology gerelateerd, en er zijn ook wel applicaties die min of meer hetzelfde doen. Maar deze doet exact wat ik wil en hoe ik het wil, en heeft het Synology backup probleem netjes opgelost.

Dat was het laatste hobby project in deze reeks. Zodra er een interessants bijkomt, zal ik er weer een stukje over schrijven.