Network-Attached Storage (NAS)

Of je je Raspberry Pi nu gaat gebruiken als mediacenter, gamemachine of dedicated ontwikkel-pc: het is erg handig om bestanden op je Pi te delen en er vanaf andere computers bij te kunnen. De Raspberry Pi staat standaard al goed ingesteld voor allerlei scenario's, maar de optie om de inhoud van je gebruikersmap (home-folder) binnen je lokale netwerk te delen is niet geactiveerd. Met Samba is het echter niet al te moeilijk om dat alsnog voor elkaar te krijgen. Daarenboven kan je Samba gebruiken onder Linux, Windows en macOS: het is dus platformonafhankelijk. Je kunt dan altijd bij je media, scripts en documenten vanaf een andere pc in je netwerk.

Installatie

Zoals steeds zorgen we dat Raspberry Pi OS up to date is:

pi@raspberrypi:~ $ sudo apt update
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Geraakt:2 http://deb.debian.org/debian-security bookworm-security InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Geraakt:4 http://archive.raspberrypi.com/debian bookworm InRelease                 
Pakketlijsten worden ingelezen... Klaar                                            
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Alle pakketten zijn up-to-date.
pi@raspberrypi:~ $ sudo apt upgrade
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

Om daarna Samba te installeren:

pi@raspberrypi:~ $ sudo apt install samba samba-common-bin
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende extra pakketten zullen geïnstalleerd worden:
  attr libcephfs2 liburing2 python3-anyio python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack python3-httpcore
  python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl python3-requests-toolbelt
  python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb python3-yaml samba-ad-provision samba-common
  samba-dsdb-modules samba-vfs-modules tdb-tools
Voorgestelde pakketten:
  python3-trio python3-aioquic python-markdown-doc bind9 bind9utils ctdb ldb-tools ntp | chrony ufw winbind heimdal-clients
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  attr libcephfs2 liburing2 python3-anyio python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack python3-httpcore
  python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl python3-requests-toolbelt
  python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb python3-yaml samba samba-ad-provision
  samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools
0 opgewaardeerd, 31 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 7.953 kB aan archieven opgehaald worden.
Na deze bewerking zal er 67,4 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 python3-dnspython all 2.3.0-1 [152 kB]
Ophalen:2 http://deb.debian.org/debian-security bookworm-security/main arm64 python3-ldb arm64 2:2.6.2+samba4.17.12+dfsg-0+deb12u1 [60,0 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 python3-tdb arm64 1.4.8-2 [16,2 kB]
...
Ophalen:29 http://deb.debian.org/debian-security bookworm-security/main arm64 samba-ad-provision all 2:4.17.12+dfsg-0+deb12u1 [415 kB]
Ophalen:30 http://deb.debian.org/debian-security bookworm-security/main arm64 samba-dsdb-modules arm64 2:4.17.12+dfsg-0+deb12u1 [298 kB]
Ophalen:31 http://deb.debian.org/debian-security bookworm-security/main arm64 samba-vfs-modules arm64 2:4.17.12+dfsg-0+deb12u1 [406 kB]
7.953 kB opgehaald in 1s (8.472 kB/s)       
Extraheren van sjablonen uit pakketten: 100%
Voorconfigureren van pakketten ...
Voorheen niet geselecteerd pakket python3-dnspython wordt geselecteerd.
(Database wordt ingelezen ... 125760 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-python3-dnspython_2.3.0-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-dnspython (2.3.0-1) ...
...
Voorheen niet geselecteerd pakket samba-vfs-modules:arm64 wordt geselecteerd.
Uitpakken van .../30-samba-vfs-modules_2%3a4.17.12+dfsg-0+deb12u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van samba-vfs-modules:arm64 (2:4.17.12+dfsg-0+deb12u1) ...
Instellen van python3-sniffio (1.2.0-1) ...
Instellen van python3-requests-toolbelt (0.10.1-1) ...
Instellen van python3-anyio (3.6.2-1) ...
...
Instellen van python3-httpx (0.23.3-1) ...
Instellen van samba-common-bin (2:4.17.12+dfsg-0+deb12u1) ...
Instellen van samba (2:4.17.12+dfsg-0+deb12u1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /lib/systemd/system/samba-ad-dc.service.
Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+rpt2+deb12u3) ...

Instellen

Als de bronpakketten geïnstalleerd zijn, moet je Samba gaan vertellen hoe hij zijn werk moet doen. Dat doe je door je voorkeursinstellingen in Samba's configuratiebestand te zetten. Dat bestand heet smb.conf en staat in de map /etc/samba.

pi@raspberrypi:~ $ sudo nano -B /etc/samba/smb.conf

Werkgroep

Het configuratiebestand bevat veel informatie en dat kan wat intimiderend overkomen, maar je hoeft maar een paar dingen te wijzigen en toe te voegen. Allereerst moet je ervoor zorgen dat de juiste werkgroep ingesteld staat. Als je je netwerk niet anders ingesteld hebt, is dat WORKGROUP.

Om de bijhorende instelling te vinden, druk je in nano op Ctrl+w en typ je workgroup in en daarna op Return. Op die manier kom je bij de eerste vermelding van het woord workgroup. Gebruik de pijltjestoetsen om tussen de regels te wisselen.

Toegangsrechten

Standaard heb je enkel leesrechten, je kunt met andere woorden de inhoud van gedeelde mappen en bestanden inkijken, maar niet aanpassen. Ook het aanmaken van nieuwe mappen en bestanden is onmogelijk. Dit heeft weerom te maken met beveiliging van gegevens. Nu lijkt het mij vanzelfsprekend dat je na het aanmelden als gebruiker met een bijhorend wachtwoord je je bestanden en mappen moet kunnen beheren, m.a.w. je hebt schrijfrechten nodig. Om dit aan te passen ga je in het configuratiebestand op zoek naar de sectie [homes] waar de instellingen voor de gebruikersmappen staan. Door de schakelaar read only niet enkel tot lezen te beperken, krijg je lees- en schrijfrechten.

   read only = no

Ziezo nu kan je reeds mappen en bestanden aanmaken, aanpassen en dus ook verwijderen, kortom alle beheeropdrachten uitvoeren. Sla de aanpassing op en sluit nano af.

Wachtwoorden instellen

Door die configuratie heb je dan een laagje beveiliging in de vorm van een wachtwoord klaargezet. Dan moet je een wachtwoord instellen om de beveiliging te kunnen gebruiken.

pi@raspberrypi:~ $ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.

Je wordt gevraagd om een nieuw wachtwoord blind in te voeren en dat te bevestigen. Dat is vervolgens je gebruikersnaam en wachtwoord om je bestanden te kunnen benaderen.

Samba herstarten

De laatste stap is het simpelweg herstarten van Samba om de nieuwe instellingen van kracht te laten worden.

pi@raspberrypi:~ $ sudo systemctl restart smbd.service

Windows Verkenner

Windows heeft naam gemaakt en de wereld veroverd door zijn compatibiliteit met vorige versies, maar dit heeft een keerzijde. In de beginjaren van de computer had je niets te vrezen van het internet, 99% van de computers was er niet op aangesloten. Toen de computers massaal het internet op gingen, moest het delen van mappen en bestanden met extra lagen beveiligd worden. Deze extra lagen kon je achterwege laten (compatibel met vroeger) of toepassen en veilig het internet op gaan. Het gebruik van extra lagen zorgde niet alleen voor compatibiliteit, maar ook voor een ongeziene complexiteit. Bij elke Windowsversie verschenen extra lagen en werd het systeem complexer.

Bij het starten van Windows Verkenner kan je via Netwerk het lokale netwerk laten scannen naar Windows compatibele apparaten. Afhankelijk van de grootte van het netwerk kan dit een tijd in beslag nemen. Na een tijdje verschijnt ook de naam van jouw Raspberry Pi tussen de Computers. Mocht dit niet zo zijn, dan herkent Windows op het netwerk aangesloten apparaten door gebruik te maken van Web Service Discovery. Dit is de vervanger van het verouderde NetBios systeem, dat stilaan uit Windows wordt verwijderd. Samba werkt nog niet met Web Service Discovery, waardoor onze NAS niet altijd in Windows Verkenner wordt weergegeven. Tot het nieuwe Windows Web Service Discovery in Samba is geïntegreerd, kan je de volgende software op uw Raspberry Pi installeren en gebruiken:

  1. Download het script (software) met de opdracht:
    pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
    --2023-10-30 15:49:05--  https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
    Herleiden van raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8001::154, ...
    Verbinding maken met raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... verbonden.
    HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
    Lengte: 72498 (71K) [text/plain]
    Wordt opgeslagen als: ‘wsdd.py’
    
    wsdd.py                           100%[============================================================>]  70,80K  --.-KB/s    in 0,02s   
    
    2023-10-30 15:49:06 (4,23 MB/s) - '‘wsdd.py’' opgeslagen [72498/72498]
  2. Verplaats het script naar de softwaremap van de Raspberry Pi:
    pi@raspberrypi:~ $ sudo mv wsdd.py /usr/bin/wsdd
  3. Dit script is voor Raspberry Pi OS nog steeds een eenvoudig tekstbestand. Om dit script als programma te kunnen starten, moeten we het uitvoerrechten geven (eXecutable maken):
    pi@raspberrypi:~ $ sudo chmod +x /usr/bin/wsdd
  4. We testen het script door het uit te voeren:
    pi@raspberrypi:~ $ /usr/bin/wsdd
    2023-10-30 15:56:30,975:wsdd WARNING(pid 2087): no interface given, using all interfaces
    En in Windows Verkenner de inhoud van het onderdeel Netwerk te vernieuwen. Jouw Raspberry Pi NAS wordt door deze extra software zichtbaar in Verkenner.
  5. Stop het wsdd script met de toetscombinatie Ctrl+C. Druk daarna op Enter om de prompt terug tegen de kant van de terminal te plaatsen.
  6. Tijd om het wsdd script automatisch te starten bij het opstarten van de Raspberry Pi:
    1. Download het systemd startscript:
      pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/christgau/wsdd/master/etc/systemd/wsdd.service
      --2023-10-30 16:00:35--  https://raw.githubusercontent.com/christgau/wsdd/master/etc/systemd/wsdd.service
      Herleiden van raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8002::154, 2606:50c0:8001::154, 2606:50c0:8003::154, ...
      Verbinding maken met raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... verbonden.
      HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
      Lengte: 824 [text/plain]
      Wordt opgeslagen als: ‘wsdd.service’
      
      wsdd.service                      100%[============================================================>]     824  --.-KB/s    in 0,002s  
      
      2023-10-30 16:00:36 (386 KB/s) - '‘wsdd.service’' opgeslagen [824/824]
    2. Verplaats het opstartscript naar de map met opstartscripts:
      pi@raspberrypi:~ $ sudo mv wsdd.service /etc/systemd/system/
    3. Test het opstartscript door het te starten:
      pi@raspberrypi:~ $ sudo systemctl start wsdd.service
      Job for wsdd.service failed because of unavailable resources or another system error.
      See "systemctl status wsdd.service" and "journalctl -xeu wsdd.service" for details.
      
    4. Dit gaat duidelijk fout. Na een grondig onderzoek van het starscript /etc/systemd/system/wsdd.service bleek al vlug dat het standaard configuratiebestand /etc/default/wsdd ontbreekt. Je kunt dit aanmaken met de opdracht:
      pi@raspberrypi:~ $ sudo touch /etc/default/wsdd
    5. Test het opstartscript opnieuw:
      pi@raspberrypi:~ $ sudo systemctl start wsdd.service
    6. Controleer de meldingen van het opstartscript:
      pi@raspberrypi:~ $ sudo systemctl status wsdd.service
       wsdd.service - Web Services Dynamic Discovery host daemon
           Loaded: loaded (/etc/systemd/system/wsdd.service; disabled; preset: enabled)
           Active: active (running) since Mon 2023-10-30 16:10:47 CET; 3min 58s ago
             Docs: man:wsdd(8)
         Main PID: 2125 (python3)
            Tasks: 1 (limit: 1578)
              CPU: 401ms
           CGroup: /system.slice/wsdd.service
                   └─2125 python3 /usr/bin/wsdd --shortlog --chroot=/run/wsdd
      
      okt 30 16:10:47 raspberrypi systemd[1]: Started wsdd.service - Web Services Dynamic Discovery host daemon.
      okt 30 16:10:48 raspberrypi wsdd[2125]: WARNING: no interface given, using all interfaces
    7. En onze Raspberry Pi NAS verschijnt terug in de Windows Verkenner Netwerkomgeving.
    8. Nu de test geslaagd is, nemen we het startscript op in het opstartsysteem van Raspian:
      pi@raspberrypi:~ $ sudo systemctl enable wsdd.service
      Created symlink /etc/systemd/system/multi-user.target.wants/wsdd.service → /etc/systemd/system/wsdd.service.
  7. Meer info over wsdd op de webpagina van de ontwikkelaar op GitHub. Uit deze info blijkt dat wsdd nu is opgenomen in Raspberry Pi OS (Debian) 12 Bookworm en je deze software kunt installeren met sudo apt install wsdd.

Gebruikersnaam en wachtwoord Herstart je Samba op de Raspberry Pi opnieuw en herscan je het netwerk in Windows Verkenner met Netwerk vernieuwen of een druk op F5. Open de Raspberry Pi computer in Windows Verkenner. Er verschijnt een dialoogvenster waar je de gebruikersnaam en bijhorende wachtwoord moet ingeven. Mocht je ooit de neiging hebben om een vinkje te plaatsen bij Mijn referenties onthouden, hou er dan wel rekening mee dat iedereen zomaar zonder wachtwoord vanaf deze computer toegang heeft tot de gebruikersmap van pi op de Raspberry Pi.

Let ook op het adres van gedeelde gebruikersmap van pi op de Raspberry Pi. \\RASPBERRYPI\pi waarbij de \\ betekenen dat er een computernaam (hostname) volgt (RASPBERRYPI) en de \ het scheidingsteken voor de mappen is (pi). Enkel Windows gebruikt backslashes, vervang op andere besturingssystemen de backslashes door gewone slashes (/). Je kunt dus steeds een Samba gedeelde map bereiken door het correcte adres in de adresbalk te typen. Indien je dit altijd doet is dit veiliger en kan je de wssd software uitschakelen en/of verwijderen.

Gebruikersmap
Praktijk opdracht
  1. We kunnen nu wel de gebruikersmap van pi beheren, maar dit maakt van onze Raspberry Pi nog geen NAS. Terug gaan we het principe toepassen waarbij het Raspberry Pi OS besturingssysteem op de SD-kaart staat en onze gegevens op een externe USB schijf met voeding (je kunt voor de opdracht ook een USB-stick gebruiken):
    1. Plug de USB-stick in de Raspberry Pi.
    2. De eigenschappen van de USB-stick geef je weer met:
      pi@raspberrypi:~ $ sudo blkid
      /dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="D3E6-3F09" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="31eee9d1-01"
      /dev/mmcblk0p2: LABEL="rootfs" UUID="cb6f0e18-5add-4177-ab98-e9f0235e06b3" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="31eee9d1-02"
      /dev/sda1: SEC_TYPE="msdos" LABEL="DANY PINOY" UUID="2A56-B4A5" BLOCK_SIZE="512" TYPE="vfat"
      De blkid opdracht toont twee opslagmedia met in totaal drie opslagruimtes (partities). mmcblk0 is de SD-kaart en deze heeft twee partities: p1 voor het opstarten (bootfs) van de Pi en p2 met het Raspberry Pi OS besturingssysteem (rootfs). sda is de USB-stick. USB-sticks gebruiken in tegenstelling tot USB schijven niet altijd partities. USB-sticks zonder partities hebben daardoor steeds één grote partitie met de naam sda. M.a.w. op USB schijven heeft sda minstens één partitie met de naam sda1. De USB-Stick in het voorbeeld werd als USB schijf geformatteerd en heeft dus een sda1 partitie. Elke schijf wordt gekenmerkt door een uniek nummer, zijn UUID. Bruikbare partities zijn geformatteerd met een bepaald bestandssysteem (TYPE), zo gebruikt de boot partitie van de SD-kaart vfat, het Raspberry Pi OS systeem ext4 en de USB-stick vfat.
    3. Maak een map om de inhoud van de USB-stick beschikbaar te maken:
      pi@raspberrypi:~ $ sudo mkdir /media/SambaDrive
    4. Uit veiligheidsoverwegingen gaan we de inhoud van de USB-stick benaderen als gebruiker pi, als je als root (systeembeheerder) werkt, krijgt een eventuele hacker direct toegang als systeembeheerder met alle gevolgen van dien. Jammer genoeg werken computersystemen met getallen (ID's) en niet met namen, de overeenkomstige ID's voor de gebruikers- en groepsnaam van de pi gebruiker achterhaal je met:
      pi@raspberrypi:~ $ id pi
      UID=1000(pi) GID=1000(pi) groepen=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),102(input),105(render),106(netdev),995(spi),994(i2c),993(gpio),115(lpadmin)
      De UID (User Identifier) en de GID (Group Identifier) stellen de ID's voor de gebruiker en de hoofdgroep waarvan deze gebruiker lid is voor.
    5. Om de inhoud van de USB-stick in de mappenstructuur van de Raspberry Pi op te nemen, moet je het configuratiebestand verantwoordelijk voor de bestandssystemen aanpassen. Het /etc/fstab (filesystem table) pas je als systeemgebruiker aan met de nano editor.
      pi@raspberrypi:~ $ sudo nano /etc/fstab
      Voeg de volgende regel toe:
      UUID=2A56-B4A5 /media/SambaDrive   vfat    rw,uid=1000,gid=1000      0     0
      Vervang daarbij de UUID door deze van jouw USB-stick. /media/SambaDrive is de map waar de inhoud van de USB-stick tevoorschijn zal komen. vfat is het op de USB-stick gebruikte bestandssysteem. De map krijgt de volgende eigenschappen: rw (readwrite, dus lees- en schrijfrechten) bepalen de toegangsrechten, uid en gid zijn de ID's van de gebruiker die toegang tot de map krijgt. Let op: dit configuratiebestand moet eindigen met een lege regel. Sla de aanpassing op en sluit de teksteditor nano af.
    6. Voor de zekerheid testen we de nieuwe configuratie:
      pi@raspberrypi:~ $ sudo mount -a
      mount: (hint) your fstab has been modified, but systemd still uses
             the old version; use 'systemctl daemon-reload' to reload.
      Ok, eerst systemd op de hoogte brengen van de aangepaste fstab:
      pi@raspberrypi:~ $ sudo systemctl daemon-reload
      En we proberen nogmaals:
      pi@raspberrypi:~ $ sudo mount -a
      Geen nieuws is opnieuw goed nieuws, anders pas je /etc/fstab aan tot deze geen fouten meer bevat. Aangezien dit configuratiebestand nodig is bij het opstarten van de Pi, is het belangrijk deze test uit te voeren, anders kan het opstarten afgebroken worden.
    7. Herstart de Raspberry Pi met:
      pi@raspberrypi:~ $ sudo shutdown -r now
      
      Broadcast message from root@raspberrypi on pts/1 (Tue 2023-10-31 15:57:05 CET):
      
      The system will reboot now!
    8. Bekijk de inhoud van de map met:
      pi@raspberrypi:~ $ ls -l /media/SambaDrive/
      totaal 8
      drwxr-xr-x 2 pi pi 8192 31 okt  2023 'System Volume Information'
      De -l optie zorgt dat er details (long) zoals rechten, gebruiker, datum en grootte worden weergegeven.
  2. Nu de USB-stick beschikbaar is, moeten we Samba instellen om er gebruik van te maken:
    1. Open als systeembeheerder het Samba configuratiebestand met een teksteditor.
      pi@raspberrypi:~ $ sudo nano -B /etc/samba/smb.conf
    2. Voeg op het einde van het configuratiebestand de volgende sectie toe:
      [NAS]
         comment = Network-Attached Storage
         path = /media/SambaDrive
         read only = no
         public = yes
         force user = pi
      Daarbij wordt de naam van de sectie (NAS) in Windows Verkenner in kleine letters weergeven als de naam van de gedeelde map. De Comment eigenschap is enkel als commentaar bedoeld en mag je dus vrij kiezen. De path eigenschap bepaald het pad waar de inhoud van de gedeelde map op de Raspberry Pi opgeslagen wordt. De read only schakelaar zorgt voor lees- en schrijfrechten. De public schakelaar zorgt dat iedereen zonder wachtwoord toegang krijgt tot de gedeelde map. De force user eigenschap zorgt dat je in de gedeelde map steeds als gebruiker pi werkt, dit moet overeenkomen met de gebruikers ID's opgegeven in het /etc/fstab configuratiebestand.
    3. Herstart samba
      pi@raspberrypi:~ $ sudo systemctl restart smbd.service
      En test de nieuwe Samba configuratie in Windows Verkenner.
  3. Een NAS is niet enkel handig om bestanden te delen, maar ook om reservekopieën te maken en dan nog het liefst automatisch. FreeFileSync kan op geregelde tijdstippen mappen en bestand synchroniseren naar een map op een ander systeem. Syncthing (zie verder) gaat nog een stuk verder en maakt bij elke aanpassing direct een kopie op een ander systeem. Daarenboven kan je met Syncthing terugkeren in de tijd. Syncthing onthoud elke aanpassing en werkt als een tijdmachine (vandaar de naam timemachine). Tijdmachines zijn complexer en dus moeilijker te configureren, maar eenmaal ze werken, gaat alles vanzelf. We beginnen met FreeFileSync.
    1. Surf in Windows naar de FreeFileSync webpagina en download het recentste installatie programma.
    2. Installeer FreeFileSync.
    3. Maak in de map Documenten een map met de naam Bron.
    4. Kopieer naar of maak in de map Documenten\Bron een tiental documenten.
    5. Maak op uw Raspberry Pi NAS de map Backup.
    6. Start de toepassing FreeFileSync vanuit de map C:/Program Files/FreeFileSync/. Hoewel FreeFileSync veel instelmogelijkheden en functies heeft, gaan we een eenvoudige synchronisatie uitvoeren:
      1. Plaats (sleep of blader) in de linkerkolom de Windows map Documenten\Bron.
      2. Plaats (sleep of blader) in de rechterkolom de map Backup op uw Raspberry Pi NAS.
      3. Selecteer met de knop Vergelijkingsinstellingen (F6) (blauw tandwiel) op het tabblad Synchronisatie (F8) de variant Bijwerken.
      4. Klik op de knop Synchroniseren (F9).
      5. Laat de synchronisatie uitvoeren.
      6. Controleer na het voltooien het Logboek.
      7. Sluit het venster met het overzicht.
      8. Controleer op de Raspberry Pi of de bestanden op de USB Stick staan. Dit kan via de Bestandsbeheerder of met behulp van de volgende opdracht:
        pi@raspberrypi:~ $ ls -l /media/SambaDrive/Backup/
        totaal 58248
        -rwxr-xr-x 1 pi pi 25675679 10 mrt  2022 '1 Basisbegrippen IT.odt'
        -rwxr-xr-x 1 pi pi  5645367 10 mrt  2022 '1 Basisbegrippen IT.pdf'
        -rwxr-xr-x 1 pi pi  8392586 28 jul  2021 '1 Basisbegrippen Taak.odt'
        -rwxr-xr-x 1 pi pi  1607040 28 jul  2021 '1 Basisbegrippen Taak.pdf'
        -rwxr-xr-x 1 pi pi  7133299 13 jan  2022 '2 Tekstverwerking Deel 1.odt'
        -rwxr-xr-x 1 pi pi  5769598 13 jan  2022 '2 Tekstverwerking Deel 1.pdf'
        -rwxr-xr-x 1 pi pi    67724 28 jun  2021 '2 Tekstverwerking Deel 1 Taak.odt'
        -rwxr-xr-x 1 pi pi   127677 28 jun  2021 '2 Tekstverwerking Deel 1 Taak.pdf'
        -rwxr-xr-x 1 pi pi  4976958  5 feb  2022 '3 Rekenbladen Deel 1.odt'
        -rwxr-xr-x 1 pi pi    80316 28 jun  2021 '3 Rekenbladen Deel 1 Taak.odt'
        -rwxr-xr-x 1 pi pi   109141 28 jun  2021 '3 Rekenbladen Deel 1 Taak.pdf'
        -rwxr-xr-x 1 pi pi      261 31 okt 16:32  sync.ffs_db
      9. Om later deze taak elke dag automatisch te laten uitvoeren, start je in het menu Bestand de opdracht Opslaan als batchverwerking...:
        1. Accepteer de standaard instellingen.
        2. Sla de batchverwerking op in de map Documenten als Backup.ffs_batch.
      10. Sluit FreeFileSync af.
    7. Om dagelijks een Backup van de map Documenten\Bron te maken, ga je als volgt te werk:
      1. Start Taakplanner.
      2. Klik bij de Acties op Taak maken....
      3. Op het tabblad Algemeen:
        1. Geef je de taak een Naam, bijvoorbeeld FreeFileSync.
      4. Maak op het tabblad Triggers een Nieuwe trigger. Een trigger bepaald het moment waarop FreeFileSync gestart wordt:
        1. Start FreeFileSync Dagelijks.
        2. Bevestig de aanmaak van de nieuwe trigger.
      5. Maak op het tabblad Acties een nieuwe actie. Acties bepalen wat er bij een trigger moet gebeuren:
        1. De actie wordt Programma starten.
        2. Blader naar het FreeFileSync programmma ("C:\Program Files\FreeFileSync\FreeFileSync.exe") op uw computer.
        3. In het tekstvak Parameters toevoegen (optioneel) plaats je de daarstraks opgeslagen batchverwerking "C:\Users\gebruikersnaam\Documents\Backup.ffs_batch".
        4. Bevestig de aanmaak van de nieuwe actie.
      6. Op het tabblad Instellingen activeer je de optie Als de taak mislukt, opnieuw opstarten elke:. En stel in dat er drie pogingen met een tussentijd van één uur worden uitgevoerd.
      7. Bevestig de aanmaak van de nieuwe taak.
      8. Open in de Task Scheduler-bibliotheek de taak FreeFileSync.
      9. Om onze taak de testen, klik je in het rechter deelvenster op de Actie Uitvoeren.
      10. Indien FreeFileSync correct is opgestart en zijn taak heeft volbracht, verschijnt opnieuw het venster met een overzicht. Indien dit niet het geval is, pas je in de Taakplanner van de geopende taak FreeFileSync de Eigenschappen aan.
    8. Een laatste test:
      1. Pas een document in de map Documenten\Bron aan.
      2. Kopieer een extra document naar de map Documenten\Bron.
      3. Verwijder een document uit de map Documenten\Bron.
      4. Voer nogmaals via Taakplanner FreeFileSync uit.
      5. Zoals je merkt, zal FreeFileSync je waarschuwen bij probleemgevallen. Negeer het Prullenbak probleem op de Raspberry Pi.
      6. Controleer op de Raspberry Pi of de backup gelukt is (aangepaste, toegevoegde en verwijderde bestand). Het verwijderde bestand blijft op de Raspberry Pi NAS staan. Dit kan je aanpassen door de instellingen van de Backup sessie in FreeFileSync aan te passen en de batchverwerking opnieuw op te slaan, evenals het weergeven van de waarschuwingen. Een mooie extra oefening.
      7. Als voorbereiding op de volgende opdracht, verwijder je de taak FreeFileSync uit de Taakplanner.
  4. Syncthing is een vrij, open-source peer-to-peer applicatie om bestanden te synchroniseren. Het is beschikbaar voor Windows, Mac, Linux, iOS, Android, Solaris, Darwin en BSD, m.a.w. platformonafhankelijk. Het kan bestanden synchroniseren tussen apparaten in een lokaal netwerk en over het internet. Dit programma kan je het best vergelijken met BitTorrent Sync (geen open-source en hogere systeembelasting), Apple Time Machine (enkel voor Apple apparaten) en op internet diensten zoals Dropbox en Google Drive (traag door internetverbinding).

    Installeer Syncthing:

    pi@raspberrypi:~ $ sudo apt install syncthing -y
    Pakketlijsten worden ingelezen... Klaar
    Boom van vereisten wordt opgebouwd... Klaar
    De statusinformatie wordt gelezen... Klaar 
    De volgende NIEUWE pakketten zullen geïnstalleerd worden:
      syncthing
    0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
    Er moeten 6.859 kB aan archieven opgehaald worden.
    Na deze bewerking zal er 21,1 MB extra schijfruimte gebruikt worden.
    Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 syncthing arm64 1.19.2~ds1-1+b4 [6.859 kB]
    6.859 kB opgehaald in 1s (9.951 kB/s)  
    Voorheen niet geselecteerd pakket syncthing wordt geselecteerd.
    (Database wordt ingelezen ... 127616 bestanden en mappen momenteel geïnstalleerd.)
    Uitpakken van .../syncthing_1.19.2~ds1-1+b4_arm64.deb wordt voorbereid...
    Bezig met uitpakken van syncthing (1.19.2~ds1-1+b4) ...
    Instellen van syncthing (1.19.2~ds1-1+b4) ...
    Created symlink /etc/systemd/system/sleep.target.wants/syncthing-resume.service → /lib/systemd/system/syncthing-resume.service.
    Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ...
    Bezig met afhandelen van triggers voor hicolor-icon-theme (0.17-2) ...
    Bezig met afhandelen van triggers voor gnome-menus (3.36.0-1.1) ...
    Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
    Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...
  5. Syncthing maakt bij zijn eerste start zelf een standaard configuratie aan. Voer daarvoor op de Raspberry Pi zelf de volgende opdracht uit:
    pi@raspberrypi:~ $ syncthing 
    [start] 16:25:04 INFO: syncthing v1.19.2-ds1 "Fermium Flea" (go1.19.8 linux-arm64) debian@debian 2023-04-09 10:43:33 UTC
    [start] 16:25:04 INFO: Generating ECDSA key and certificate for syncthing...
    [start] 16:25:04 INFO: Default folder created and/or linked to new config
    [start] 16:25:04 INFO: Default config saved. Edit /home/pi/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
    [start] 16:25:04 INFO: Archiving a copy of old config file format at: /home/pi/.config/syncthing/config.xml.v0
    [ZF5O2] 16:25:04 INFO: My ID: ZF5O2AH-GNJFWXP-TQLM37E-XNW346Q-I2JWZKC-RFW5POA-72WWFBA-2C6FZQG
    [ZF5O2] 16:25:05 INFO: Single thread SHA256 performance is 43 MB/s using crypto/sha256 (43 MB/s using minio/sha256-simd).
    [ZF5O2] 16:25:06 INFO: Hashing performance is 39.77 MB/s
    [ZF5O2] 16:25:06 INFO: Running database migration 1...
    [ZF5O2] 16:25:06 INFO: Running database migration 2...
    ...
    [ZF5O2] 16:25:06 INFO: Running database migration 17...
    [ZF5O2] 16:25:06 INFO: Running database migration 19...
    [ZF5O2] 16:25:06 INFO: Compacting database after migration...
    [ZF5O2] 16:25:06 INFO: Starting deadlock detector with 20m0s timeout
    [ZF5O2] 16:25:06 INFO: Overall send rate is unlimited, receive rate is unlimited
    [ZF5O2] 16:25:06 INFO: No stored folder metadata for "default"; recalculating
    [ZF5O2] 16:25:06 INFO: Using discovery mechanism: global discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
    [ZF5O2] 16:25:06 INFO: Using discovery mechanism: global discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
    [ZF5O2] 16:25:06 INFO: Using discovery mechanism: global discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
    [ZF5O2] 16:25:06 INFO: Using discovery mechanism: IPv4 local broadcast discovery on port 21027
    [ZF5O2] 16:25:06 INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
    [ZF5O2] 16:25:06 INFO: TCP listener ([::]:22000) starting
    [ZF5O2] 16:25:06 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
    [ZF5O2] 16:25:06 INFO: Loading HTTPS certificate: open /home/pi/.config/syncthing/https-cert.pem: no such file or directory
    [ZF5O2] 16:25:06 INFO: Creating new HTTPS certificate
    2023/11/01 16:25:06 connection doesn't allow setting of receive buffer size. Not a *net.UDPConn?. See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
    [ZF5O2] 16:25:06 INFO: QUIC listener ([::]:22000) starting
    [ZF5O2] 16:25:06 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
    [ZF5O2] 16:25:06 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
    [ZF5O2] 16:25:06 INFO: GUI and API listening on 127.0.0.1:8384
    [ZF5O2] 16:25:06 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
    [ZF5O2] 16:25:06 INFO: My name is "raspberrypi"
    [ZF5O2] 16:25:16 INFO: New NAT port mapping: external TCP address 91.180.5.20:17299 to local address [::]:22000.
    [ZF5O2] 16:25:16 INFO: Detected 1 NAT service
    [ZF5O2] 16:25:25 INFO: quic://0.0.0.0:22000 detected NAT type: Port restricted NAT
    [ZF5O2] 16:25:25 INFO: quic://0.0.0.0:22000 resolved external address quic://91.180.5.20:22000 (via stun.syncthing.net:3478)
    [ZF5O2] 16:25:46 INFO: Joined relay relay://5.181.48.104:22067
    De browser start automatisch op met de bedieningspagina van Syncthing. Stel in of er Anonieme gebruikersstatistieken verstuurd mogen worden.
    1. Open het menu Acties en start de opdracht Instellingen.
    2. De term localhost verwijst naar de locatie van het eigen systeem op een netwerk. Het is een loopback-interface, in IPv4 krijgt dit meestal het IP-adres 127.0.0.1, in IPv6 ::1. Dit adres kan vervolgens door TCP/IP-applicaties gebruikt worden om met het eigen systeem te communiceren indien dit nodig is.

      Dit adres kan aangewend worden voor testdoeleinden zonder dat de machine een "echt" IP-adres moet hebben, of om services, die normaal via het netwerk bereikt worden, te contacteren op de eigen machine.

      Tevens dient het adres om gebruikers die op de computer zelf werken te onderscheiden van diegenen die van een netwerk gebruik maken. Vooral voor wat betreft toegangscontrole is dit onderscheid nuttig.

      In de hackerscene heeft het adres een zeker cultstatus verworven, als symbool van de eigen computer. Dit heeft zijn weerslag gevonden in gevleugelde woorden als "Home is where 127.0.0.1 is" en "There's no place like 127.0.0.1".
    3. Standaard kan je Syncthing enkel bedienen vanuit een browser op de Raspberry Pi zelf, maar dat is erg onhandig, zeker als je er daarvoor een toetsenbord, muis en scherm moet op aansluiten. Dit doe je door het adres van waarop Syncthing is te bedienen uit te breiden van localhost (127.0.0.1) naar alle apparaten (ongedefinieerd of 0.0.0.0): Pas op het tabblad GUI het GUI-luisteradres aan naar 0.0.0.0:8384.
    4. Om veiliger te werken, kan je een GUI-gebruikersnaam en GUI-wachtwoord toevoegen en de gegevens tijdens het verzenden en ontvangen versleutelen door HTTPS gebruiken voor GUI in te schakelen. Dit laatste is enkel nodig als je via internet werkt.
    5. Schakel indien gewenst het automatisch opstarten van de browser uit. Dit is namelijk nutteloos en processor belastend op een NAS zonder scherm, toetsenbord en muis.
    6. Sla de aanpassingen op.
    7. Sluit Syncthing af via het menu Acties en sluit de browser op de Raspberry Pi.
  6. Je kunt Syncthing bij elke start van de Raspberry Pi manueel starten, maar het is veel eenvoudiger als dit automatisch gaat.
    1. Start Syncthing als pi gebruiker via:
      pi@raspberrypi:~ $ sudo systemctl start syncthing@pi.service
    2. Test de Syncthing service met de opdracht:
      pi@raspberrypi:~ $ sudo systemctl status syncthing@pi.service
       syncthing@pi.service - Syncthing - Open Source Continuous File Synchronization for pi
           Loaded: loaded (/lib/systemd/system/syncthing@.service; disabled; preset: enabled)
           Active: active (running) since Wed 2023-11-01 16:36:34 CET; 4min 19s ago
             Docs: man:syncthing(1)
         Main PID: 2997 (syncthing)
            Tasks: 19 (limit: 1578)
              CPU: 2.575s
           CGroup: /system.slice/system-syncthing.slice/syncthing@pi.service
                   ├─2997 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0
                   └─3006 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0
      
      nov 01 16:36:35 raspberrypi syncthing[2997]: [ZF5O2] INFO: My name is "raspberrypi"
      nov 01 16:36:35 raspberrypi syncthing[2997]: 2023/11/01 16:36:35 connection doesn't allow setting of receive buffer size. Not a *net.UDPConn?. See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
      nov 01 16:36:35 raspberrypi syncthing[2997]: [ZF5O2] INFO: QUIC listener ([::]:22000) starting
      nov 01 16:36:35 raspberrypi syncthing[2997]: [ZF5O2] INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
      nov 01 16:36:35 raspberrypi syncthing[2997]: [ZF5O2] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
      nov 01 16:36:46 raspberrypi syncthing[2997]: [ZF5O2] INFO: New NAT port mapping: external TCP address 91.180.5.20:17299 to local address [::]:22000.
      nov 01 16:36:46 raspberrypi syncthing[2997]: [ZF5O2] INFO: Detected 1 NAT service
      nov 01 16:36:55 raspberrypi syncthing[2997]: [ZF5O2] INFO: quic://0.0.0.0:22000 detected NAT type: Port restricted NAT
      nov 01 16:36:55 raspberrypi syncthing[2997]: [ZF5O2] INFO: quic://0.0.0.0:22000 resolved external address quic://91.180.5.20:22000 (via stun.syncthing.net:3478)
      nov 01 16:37:13 raspberrypi syncthing[2997]: [ZF5O2] INFO: Joined relay relay://193.107.20.252:443
    3. Indien alles goed ging, kan je Syncthing opnemen in de opstartprocedure van de Raspberry Pi:
      pi@raspberrypi:~ $ sudo systemctl enable syncthing@pi.service
      Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@pi.service → /lib/systemd/system/syncthing@.service.
    4. Test of Syncting automatisch opstart bij het opstarten van de Raspberry Pi.
  7. Syncting beheer je via een webpagina die je kan bereiken via poort 8384.
    Syncting beheer
    1. Eerst bepaal je waar op de Raspberry Pi de gesynchroniseerde bestanden bewaard worden:
      1. Klik op de knop .
      2. Geef de map een Maplabel (naam) (Sync). Deze mag je zelf kiezen, maar ze moet wel uniek zijn op het apparaat, daarenboven maak je het jezelf eenvoudiger als je systematisch te werk gaat (zie verder).
      3. En een bijhorende Maplocatie in de bestandsstructuur van de Raspberry Pi. Bij het intypen van de Maplocatie wordt je geholpen met een keuzelijst met beschikbare mappen. Indien je een onbestaande map gebruikt, wordt indien mogelijk deze automatisch aangemaakt. Wij kiezen vanzelfsprekende een map op onze USB-stick (/media/SambaDrive/Sync waarbij de map Sync automatisch wordt aangemaakt). Let op de naamgeving van de map en het Map label, dit is wat we bedoelen met systematisch werken.
      4. Sla de instellingen op.
  8. Op apparaten waarvan mappen moeten synchroniseren met een map op de Raspberry Pi, moet je eveneens Syncthing installeren en configureren:
    1. Download de Syncting versie voor Windows 64 bit.
    2. Pak het gedownloade ZIP bestand (Gecomprimeerde map) volledig uit.
    3. Open de map met het uitgepakte Syncthing.
    4. Start Syncting. Soms krijg je een melding van Windows SmartScreen dat uw PC wordt beschermd tegen applicaties van Onbekende uitgevers (lees niet door Microsoft erkende uitgevers). Klik op Meer informatie en daarna op de knop om Syncthing toch te starten.
      SmartScreen
      Deze toestemming moet je maar één keer geven, bij de volgende start van Syncthing start Syncthing zonder deze melding.
    5. Automatisch start de standaard browser met het Syncting beheer voor de Windows computer. Hier is geen gebruikersnaam en bijhorend wachtwoord nodig, aangezien de webpagina enkel lokaal bereikbaar is.
    6. Op de achtergrond verschijnt een Firewall dialoogvenster.
      Firewall
      Syncthing moet toegang krijgen tot het netwerk om gegevens (bestanden) te kunnen synchroniseren met de Raspberry Pi. Met andere woorden, als je Syncthing wilt gebruiken, moet je de optie Particuliere netwerken zoals thuis- of bedrijfsnetwerken activeren en klik je op de knop . Vanaf dan heeft Syncthing steeds toegang tot het lokale netwerk.
    7. Lees de informatie die in het dialoogvenster Versturen van anonieme gebruikersstatistieken toestaan? verschijnt. Reageer gepast. M.a.w. stuur je gegevens naar de ontwikkelaars van Syncthing om deze software verder te verbeteren en door te ontwikkelen met informatie over hoe je Syncthing gebruikt.
    8. Tijd om Syncthing op de hoogte te brengen van een tweede apparaat met Syncthing (onze Raspberry Pi):
      1. Klik op de knop .
      2. Selecteer en vervolledig het correcte Apparaat-ID van jouw Raspberry Pi. Het Apparaat-ID van uw Raspberry Pi kan je op de webpagina van Syncthing op de Raspberry Pi opvragen bij Acties > ID weergeven.
      3. Als Naam kies je de naam van jouw Raspberry Pi (logisch toch).
      4. Sla de instellingen op.
    9. Ondertussen wordt op de webpagina van de Raspberry Pi een melding weergegeven.
      Nieuw apparaat toestaan
      Met de knop in deze melding aanvaard Syncthing de verbinding met Syncthing op Windows. Dit heen en weer gedoe is noodzakelijk om vreemden te weren (beveiliging door middel van aanvraag en toestemming):
      1. Op het tabblad Delen bij Niet-gedeelde mappen activeer je de map Sync. Zo geef je aan dat je de bestanden afkomstig van Windows zult opslaan in de map Sync.
      2. Sla de instellingen op.
    10. Ondertussen verschijnt bovenaan de webpagina van Syncthing op Windows een melding:
      Map delen
      1. Nu de Raspberry Pi een map heeft klaarstaan om bestanden van Windows in op te slaan, kan je met de knop een map op Windows selecteren die synchroniseert met de map op de Raspberry Pi.
      2. Alle gekende informatie afkomstig van de Raspberry Pi is reeds ingevuld, waaronder het Maplabel en de Map-ID. Hier merk je weer dat wij mensen werken met namen en labels en computerprogramma's met ID's. Enkel mappen met hetzelfde ID worden gesynchroniseerd. Als Maplocatie gebruik je C:\Users\gebruikersnaam\Documents\Bron (het juiste pad kan je vinden in de adresbalk van Verkenner) of met andere woorden de bronmap in de map Documenten van de gebruiker op de Windows computer.
      3. Sla de instellingen op.
    11. Automatisch begint de synchronisatie. Let op: zowel de map (gaat snel, lokaal), als het apparaat moet gesynchroniseerd zijn (traag, transfer via netwerk). Na het beëindigen van het synchroniseren staat er bij het Externe Apparaat de groene melding Bijgewerkt.
      Bijgewerkt
    12. Onder Windows kan je aan de map Sync met de gesynchroniseerde mappen en bestanden dankzij de reeds eerder ingestelde Samba. En op de Raspberry Pi geef je de gesynchroniseerde bestanden en mappen weer met:
      pi@raspberrypi:~ $ ls -l /media/SambaDrive/Sync/
      totaal 58920
      -rwxr-xr-x 1 pi pi 25578701  1 nov 16:07 '1 Basisbegrippen IT.odt'
      -rwxr-xr-x 1 pi pi  8392586 28 jul  2021 '1 Basisbegrippen Taak.odt'
      -rwxr-xr-x 1 pi pi  1607040 28 jul  2021 '1 Basisbegrippen Taak.pdf'
      -rwxr-xr-x 1 pi pi  7133299 13 jan  2022 '2 Tekstverwerking Deel 1.odt'
      -rwxr-xr-x 1 pi pi  5769598 13 jan  2022 '2 Tekstverwerking Deel 1.pdf'
      -rwxr-xr-x 1 pi pi    67724 28 jun  2021 '2 Tekstverwerking Deel 1 Taak.odt'
      -rwxr-xr-x 1 pi pi   127677 28 jun  2021 '2 Tekstverwerking Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi  4976958  5 feb  2022 '3 Rekenbladen Deel 1.odt'
      -rwxr-xr-x 1 pi pi    80316 28 jun  2021 '3 Rekenbladen Deel 1 Taak.odt'
      -rwxr-xr-x 1 pi pi   109141 28 jun  2021 '3 Rekenbladen Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi  6433570 22 jul  2022 '9 Presentaties Deel 2.odt'
      -rwxr-xr-x 1 pi pi      278  1 nov 16:09  sync.ffs_db
  9. Voor het ogenblik moet je op Windows Syncthing zelf starten, dit is enkel handig als je zelf wilt bepalen wanneer er gesynchroniseerd wordt. Gebruiksvriendelijker wordt het als Windows Syncthing automatisch start bij het starten van Windows:
    1. Sluit de webbrowser.
    2. Sluit het venster waarin je de werkzaamheden van Syncthing kunt volgen. Daarmee sluit je ook Syncthing zelf af.
    3. Start Taakplanner.
    4. Klik op de Acties Taak maken....
    5. Op het tabblad Algemeen:
      1. Geef je de taak een Naam, bijvoorbeeld Syncthing.
      2. Activeer je de optie Uitvoeren ongeacht of gebruiker wel of niet is aangemeld.
    6. Maak op het tabblad Triggers een Nieuwe trigger. Een trigger bepaald het moment waarop Syncthing gestart wordt:
      1. Zorg dat deze taak start bij het opstarten.
      2. Elke aanmeldtaak vertraagt het opstarten van uw computer, om dit te vermijden kan je de optie Taakuitstel activeren en een tijd opgeven na hoeveel tijd Syncthing pas mag opstarten (standaard 15 minuten).
      3. Bevestig de aanmaak van de nieuwe trigger.
    7. Maak op het tabblad Acties een nieuwe actie. Acties bepalen wat er bij een trigger moet gebeuren:
      1. De actie wordt Programma starten.
      2. Blader naar het Syncthing programmma op uw computer.
      3. In het tekstvak Parameters toevoegen (optioneel) plaats je de parameters -no-console -no-browser. Dit verhindert het automatisch opstarten van de browser en het venster met de Syncthing meldingen.
      4. Bevestig de aanmaak van de nieuwe actie.
    8. Op het tabblad Instellingen deactiveer je de optie Stoppen als deze taak langer duurt dan:. Het synchroniseren moet namelijk steeds blijven doorgaan.
    9. Bevestig de aanmaak van de nieuwe taak. Daarbij moet je het wachtwoord van de Windows gebruiker opgeven.
    10. Open in de Task Scheduler-bibliotheek de taak Syncthing.
    11. Om onze taak de testen, klik je in het rechter deelvenster op de Actie Uitvoeren.
    12. Indien Syncthing correct is opgestart, moet deze in de browser bereikbaar zijn op het adres http://127.0.0.1:8384/. Indien dit niet het geval is, pas je in de Taakplanner van de geopende taak Syncthing de Eigenschappen aan.
    13. Als ultieme test herstart je Windows.
  10. Met versiebeheer worden wijzigingen in documenten en andere bestanden bijgehouden. Dit betekend in de praktijk dat bestanden die gesynchroniseerd worden, niet zomaar worden overschreven, maar dat oudere versies nog een tijdje bewaard worden. Dit vergt echter voor het bijhouden van de oude versies veel meer schijfruimte. In Syncthink werkt dit als volgt:
    1. Surf naar de beheerspagina van Syncthing op de Raspberry Pi.
    2. Klik op de map Sync.
    3. Daarna op Bewerken.
    4. Selecteer bij Versiebeheer het Gespreid versiebeheer. Een korte uitleg verschijnt op het scherm. Gespreid versiebeheer is het meest geavanceerde versiebeheer dat in Syncthing is ingebouwd. Standaard worden oude versies maximaal een jaar bijgehouden, hoe recenter, hoe meer versies bewaard worden.
    5. Bevestig de nieuwe instelling.
  11. Het pas geactiveerde versiebeheer test je als volgt:
    1. Maak in de map Documenten/Bron een nieuw tekstdocument aan met de naam Versiebeheer.
    2. Open de pas aangemaakte tekst en typ:
      Deze tekst is de eerste versie, met andere woorden een ruwe schets.
    3. Sla de aangepaste tekst op.
    4. Wacht ten minste 1 minuut, want pas bij de volgende synchronisatie, komt het bestand in aanmerking om bewaard te worden door het versiebeheer. De synchronisatie kan je volgen op de webpagina van de Raspberry Pi.
    5. Voeg de volgende tekst toe:
      De tweede versie bevat naast de hoofdlijnen al enkele details, compleet is deze tekst nog lang niet.
    6. Sla de aangepaste tekst op.
    7. Na een tijdje merkt je op de Raspberry Pi inderdaad dat het versiebeheer werkt:
      pi@raspberrypi:~ $ ls -la /media/SambaDrive/Sync/.stversions/
      totaal 24
      drwxr-xr-x 2 pi pi 8192  6 nov 16:19 .
      drwxr-xr-x 4 pi pi 8192  6 nov 16:19 ..
      -rwxr-xr-x 1 pi pi    0  6 nov 16:16 Versiebeheer~20231106-161830.txt
      -rwxr-xr-x 1 pi pi   67  6 nov 16:18 Versiebeheer~20231106-161932.txt
      De Sync map bevat ook oude versies van Versiebeheer.txt:
      pi@raspberrypi:~ $ cat /media/SambaDrive/Sync/.stversions/Versiebeheer~20231106-161932.txt 
      Deze tekst is de eerste versie, met andere woorden een ruwe schets.
      Deze kreeg een tijdstempel in de naam.
  12. Sommige bestanden en mappen zijn verborgen (naam begint met een punt). Deze verborgen mappen zijn standaard niet zichtbaar in met Samba gedeelde mappen. Verborgen mappen en bestanden worden niet zomaar verborgen, ze bevatten dikwijls kritieke gegevens die je niet ongestraft kunt aanpassen en/of verwijderen. M.a.w. probeer het volgende niet thuis (op eigen risico) (een gewaarschuwde man of vrouw is er twee waard) (enz.):
    1. Voeg in het configuratiebestand van Samba in de sectie NAS de volgende regel toe:
         hide dot files = no
    2. Zorg dat Samba de nieuwe configuratie gebruikt.
    3. Test in Windows Verkenner of je nu de map .stversions kunt openen.
  13. Vanzelfsprekend bestaan er kant en klare NAS images voor de Raspberry Pi. EasyNAS en Rockstor zijn daar voorbeelden van. Er bestaat zelfs een modern cloud systeem: NextCloud. Op het eerste zicht lijkt het gebruik van een kant en klaar image eenvoudiger, maar:
    • Je bent voor de verdere ontwikkeling en updates afhankelijk van de image maker.
    • Je kunt meestal zelf geen aanpassingen uitvoeren op een systeem dat je niet kent. Informatie vinden over een specifiek image is veel moeilijker dan voor Rasperry Pi OS.
    • Je kunt geen extra software of projecten combineren op zo'n image. Denk aan een mediaserver in combinatie met een NAS en WiFi Access Point. Ook een automatisch back-upsysteem als SyncThing toevoegen wordt dan moeilijk tot onmogelijk.
Als afsluiter enkele opmerkingen over bestandssystemen voor reservekopieën:

Openbare reacties op deze pagina (kunnen door alle bezoekers gelezen worden)

, vrijdag 2 juni 2023 19:28