Server::Backup en Restore
BACKUP
Een back-up of reservekopie is een kopie van gegevens die zich op een gegevensdrager of binnen een applicatie bevinden om deze te kunnen herstellen mochten ze beschadigd raken. Deze kopieën worden preventief gemaakt om belangrijke gegevens veilig te stellen voor het geval de gegevens op de originele drager verloren gaan of beschadigd raken.
Indien nodig kan een back-up weer op een vergelijkbare originele drager teruggezet worden. Afhankelijk van het soort voorval waardoor de gegevens verloren gaan kunnen verschillende back-up methoden gebruikt worden:
- Het "per ongeluk" weggooien of beschadigen van een bestand door de gebruiker kan ondervangen worden door simpelweg een kopie van belangrijke bestanden te maken op dezelfde schijf.
- Het kapotgaan van de harde schijf kan ondervangen worden door een back-up op extra harde schijf te maken of door een RAID-configuratie te gebruiken.
- Diefstal van een computer of gegevensdrager kan ondervangen worden door de back-up op een extern medium te maken.
- Een grote brand, overstroming of andere calamiteit kan ondervangen worden door de back-up op een andere locatie te bewaren.
Bij het opzetten van een back-up strategie moeten bovenstaande overwegingen meegenomen worden. Daarnaast moet er ook aan gedacht worden dat beschadigingen in gegevens vaak niet meteen opgemerkt worden en dat een recente back-up misschien al een kopie van de beschadigde gegevens bevat. Het is dus verstandig meerdere back-ups te bewaren over een langere periode.
Backup methoden
Er zijn verschillende benaderingen mogelijk om een back-up te maken. Deze vallen globaal uiteen in twee methoden: back-ups van de volledige harde schijf, de zogenoemde image back-ups, en back-ups op bestandsniveau.
Image back-ups zijn vooral geschikt om in geval van een catastrofale fout van een harde schijf, de vervangende schijf snel volledig identiek in te richten.
Back-ups op bestandsniveau zijn daarentegen bedoeld om in geval van fouten in een of meer bestanden (bijvoorbeeld het onbedoeld verwijderen van een deel ervan, of het verwijderen van een bestandsmap) de bestanden weer terug te kunnen plaatsen zonder dat daarbij de rest van het systeem beïnvloed wordt. Ook is het mogelijk om oudere versies van bestanden, voor zover op een van de back-ups aanwezig, terug te plaatsen zodat deze met de huidige versie vergeleken kunnen worden.
Back-ups op bestandsniveau worden veel volgens het volgende schema uitgevoerd:
- Een volledige back-up per periode. De lengte van de periode kan afhangen van de hoeveelheid gegevens, de mate waarin deze veranderen en de capaciteit van het gebruikte back-up-medium. Meestal is deze periode een week, soms twee weken of een maand. Deze back-ups worden om archiefredenen in het algemeen langer bewaard, ook al is er een nieuwere volledige back-up gemaakt.
- Een incrementele back-up per dag. In deze back-up worden alleen die bestanden opgeslagen die sinds de vorige volledige of incrementele back-up zijn veranderd. Om een volledige bestandsmap terug te plaatsen zijn de laatste volledige back-up, en alle daar op volgende incrementele back-ups nodig.
- Een progressieve back-up, ook wel "incremental forever back-up method" genoemd. Dit is een variant op incrementele back-up waarbij de eerste incrementele back-up natuurlijk een volledige back-up is. Vervolgens worden alleen nog maar incrementele back-ups gemaakt. Om een volledige bestandsmap terug te plaatsen zijn geen verschillende back-ups nodig, in plaats daarvan bouwt de back-upserver een lijst van terug te zetten bestanden die vervolgens vanuit de opslag naar de client worden gestuurd.
- In plaats van een incrementele back-up kan ook een differentiële back-up gemaakt worden. Hierbij worden steeds alle bestanden opgeslagen die sinds de laatste volledige back-up zijn veranderd. Om een volledige bestandsmap terug te plaatsen zijn de laatste volledige back-up en de laatste differentiële back-up nodig.
Ook het simpelweg kopiëren van belangrijke files is een vorm van back-up, die in bepaalde situaties effectief kan zijn.
Server layout en backup strategie
Vanaf ClearOS 6 recommendeert ClearOS het centraliseren van gebruikersdata. Dit helpt niet alleen met opslagbeheer, maar vereenvoudigt ook backupbeheer.
Voor deze Ubuntu Server sluiten we ons hier bij aan.
Zie Server::Gebruikersdata Opslag voor de hiertoe aanbevolen structuur.
Voor de Ubuntu Servers is gekozen voor een traditioneel systeem met individuele HDD's en het toepassen van de 3-2-1 backup-regel
3-2-1 regel
Deze kan helpen bij de inrichting van je backupproces. Zorg voor 3 versies van je data (de productiedata en twee back-ups), op 2 verschillende media (op fysiek gescheiden harde schijven), met 1 kopie op een andere locatie voor noodherstel (bijvoorbeeld een kluis in een ander gebouw).
Door backups op een andere locatie op te slaan kun je, indien bijvoorbeeld ransomware je bedrijfsnetwerk heeft versleuteld, je systemen herstellen.
De gekozen opslagstrategie op de Thuisserver benodigd 4 partities op 4 fysiek gescheiden HDD's:
- SSD nvme0n1p2 met / (root) inclusief /boot en het Ubuntu Server OS
Note: De firmware van de Thuisserver heeft geen aparte partitie nodig voor /Boot - SDA met '/Home/Live' gebruikersdata (Fileserver en Webserver)
- SDB met '/Home/Backup' van ssd nvme0n1, hdd SDA en netwerk PC's
- SDC met '/Vault' met backup van SDB
De backupdata op SDD worden uiteindelijk regelmatig weggeschreven naar een 'air-gapped' Backup Server
Backup Flowchart Thuisserver
Zie voor een compleet overzicht van databronnen en backuplokaties de backup-flowchart
Onderstaande uitsnede van de flowchart toont de schijfstations ingedeeld volgens de 3-2-1 strategie
Overzicht van backuptaken
Het volledige pakket van backups en methodes zoals deze in onderstaande volgorde in detail besproken gaat worden:
- Operating System Backup
Sysback script voor opslag van het complete OS naar een fysiek gescheiden station
Wekelijks naar /Vault - BackupPC Serverdata
App geconfigureerd voor backup en restore van serverdata (live naar backup)
Dagelijks naar /Backup - BackupPC Netwerk PC's
App geconfigureerd voor backup en restore van client PC's op het lokale netwerk
Dagelijks naar /Backup - BackupPC Archivaris
App geconfigureerd voor backup van alle data naar fysiek gescheiden station
Wekelijks naar /Vault. - PiWiGo data en Wordpress blog data /Store/Live dagelijks naar /Vault
Distributie Werkbelasting Serveronderhoud
Door de vele backups en filescans kan een behoorlijke werkbelasting ontstaan en de backups van de netwerk-PC's vragen de nodige bandbreedte.
Het is daarom nuttig de nodige tijd te besteden aan een gelijkmatige distributie van de diverse taken.
Hier een voorbeeld zoals dit er op de homeserver uitziet:
Operating System Backup
Voor het maken van een snapshot van het complete OS naar een fysiek gescheiden station is het script 'sysback' samengesteld.
Met de tarball van de snapshot kan het OS hersteld worden.
Sysback Script
Klik hier om het 'sysback' script te bekijken en/of gebruik Save As om bestand op te slaan.
In het begin van het script worden verschillende variables opgeslagen o.a. het pad waar de backups opgeslagen moeten worden (sysbackdir). In deze sectie kan het script dus eenvoudig aangepast worden aan de serverconfiguratie.
Zie ook Server::Utility Scripts sectie Optie 1: Server OS backup
# Set VARIABLES # Geef hier aan waar backups opgeslagen moeten worden sysbackdir="/vault/sysback/"; # Geef hier aan welk datumformaat gebruikt moet worden voor de bestandsnaam van de backup datestamp=$(date +%Y%m%d)
Daarna wordt een tarball gemaakt van de essentiële delen van het OS. Dit archief wordt voorzien van een bestandsnaam met daarin opgenomen de timestamp. Elke keer dat een een nieuwe backup gemaakt wordt, wordt deze dus weggeschreven met een nieuwe naam.
Voorbeeld scriptsectie:
# Maak tarball van systeem bestanden tar --exclude=swap.img --exclude=/proc --exclude=/dev --exclude=/tmp --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/media --exclude=/var/cache/apt/archives --exclude=/usr/src/linux-headers* --exclude=/home --exclude=/store --exclude=/vault --exclude=/var/www/html -cvzf $sysbackdir$datestamp"-sysback.tar.gz" /; # delete bestaande tarballs die meer dan twee weken oud zijn find $sysbackdir -maxdepth 1 -mtime +14 -name *sysback.* -exec rm {} \;;
In de eerste regel wordt een tarball gecreëerd (tar -c) op de locatie 'sysbackdir' dat de naam krijgt beginnend met de 'datestamp' gevolgd door '-sysback'. Het archief wordt gemaakt van '/' (root), dus in feite de gehele server behalve de uitgefilterde secties gespecificeerd met --exclude.
In de tweede regel wordt op de opslaglocatie gezocht naar '*sysback.*' bestanden die ouder zijn dan 14 dagen en deze worden verwijderd met commando '-exec rm'
Taak schedulen
Het maken van de backup wordt wekelijks uitgevoerd door middel van een 'cron' (var/spool/cron/root) die het script aanroept.
15 0 * * 0 /usr/local/bin/sysback &> /dev/null
Met deze cron draait het script elke dag om 00:15 uur.
Tevens kan de backup manueel gestart worden vanuit het script 'backup'. Zie hiervoor Server::Utility Scripts sectie Optie 1: Server OS backup
Gebruikersinstructies voor herstel met backups
Klik hier om het document 'sysback_restore_readme' met gebruikersinstructies te bekijken.
Hieronder informatie voor het terugzetten van het systeem (of secties hiervan) met de backup.
- De backups zijn opgeslagen in /vault/sysback
- Als de backups in /vault missen of corrupt (ransomware) zijn gebruik dan de backups op de Backup-Server
- De tarball is gecreëerd met het path vanuit root '/', dus de extract (restore) uitvoeren vanuit root!!!
Een voorbeeld met een backup met naam: 20151025-sysback.tar.gz:
Extract tarball vanuit root
# cd /
Haal lijst met beschikbare tarballs
# ls /vault/sysback
Geef lijst van bestanden in gekozen tarball
# tar -tzvf
/vault/sysback/20151025-sysback.tar.gz
Geef lijst van bestanden in specifieke map(pen) in gekozen tarball
#
tar -tzvf
/vault/sysback/20151025-sysback.tar.gz user/local/bin/sysback
Restore complete '/' directorie en subdirectories
# tar -xzvf /vault/sysback/20151025-sysback.tar.gz
Restore alleen subdir 'usr' en al z'n subdirectories
# tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr
restore alleen bestand 'sysback'
# tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr/local/bin/sysback
Herstel met backups en boot met rescue disk
Als een root map beschadigd of verwijderd is kan in veel gevallen het systeem niet meer opstarten.
In zo'n geval moeten we de machine booten met de installatie disk.
Gebruik voor restore het Sysback bestand in /vault/sysback of op de Backup-Server SSD /vault/sysback
Voorbeeld van de te volgen procedure voor het herstel van de map /usr
- Start de machine met monitor en de installatiedisk Ubuntu Server
- Selecteer Troubleshooting en vervolgens 'Rescue system' en vervolgens het systeem laten proberen de systeemimage op /mnt/sysimage te laten zetten.
- Als dit lukt dan worden 4 opties geboden, kies 1 - Continue en volg instructies: Press Return naar Shell en geef commando chroot /mnt/sysimage.
Het OS is nog steeds die opgestart is van de Installatiedisk, maar wij zijn nu in de Server bestanden. - # cd /
- # ls -l /vault/sysback
(geeft listing met de meest recente sysback tarballs bv 20161099-sysback.tar.gz) - # tar -xzvf /vault/sysback/20161099-sysback.tar.gz usr
Hiermee is /usr teruggezet met de backup
Rescue mode
Optie als het OS van de Installatiedisk het systeem niet kan mounten op /mnt/sysimage
Zie ook How to Boot Ubuntu into Rescue / Emergency Mode
- Start de machine met monitor zonder installatiedisk
- Zodra het PC flash screen verschijnt ‘SHIFT & ESC’ key vasthouden tot grub bootladerscherm opent.
Als je het Ubuntu logo ziet, heb je het punt gemist voor het GRUB menu, probeer opnieuw. - Optie 1:
Scroll naar de optie: Advanced Options
Scroll naar 'root' en vervolg als root aan de commandlijn.
Zoek de fout en/of gebruik de sysback tarball zoals hierboven beschreven om bestanden terug te zetten. - Optie2 voor Rescue Mode:
In grub menu: Selecteer 1e optie 'Ubuntu' en klik 'e' om naar edit mode te gaan.
Ga naar het einde van de regel die start met linux en delete de string ‘$vt_handoff’ en voeg hier toe:
‘systemd.unit=rescue.target’
Na het maken van deze wijziging klik Ctrl+x or F10 om naar rescue mode te booten.
Zoek de fout en/of gebruik de sysback tarball zoals hierboven beschreven om bestanden terug te zetten. - Optie 3 voor Emergency Mode :
In grub menu: Selecteer 1e optie 'Ubuntu' en klik 'e' om naar edit mode te gaan.
Ga naar het einde van de regel die start met linux en delete de string ‘$vt_handoff’ en voeg hier toe:
‘systemd.unit=emergency.target’
Na het maken van deze wijziging klik Ctrl+x or F10 om naar rescue mode te booten.
Zoek de fout en/of gebruik de sysback tarball zoals hierboven beschreven om bestanden terug te zetten.
Grub Restore
De tarball xxxxxxxx-sysback.tar.gz bevat de rootbestanden en de kernel.
Na een restore met dit bestand zal Linux mogelijk niet opstarten en moet het bootprogramma GRUB hersteld worden.
Hiervoor moeten de monitor en keyboard aangesloten worden en de computer geboot worden met de Boot-Repair-Disk.
Zie gebruiksinstructies op
https://sourceforge.net/p/boot-repair-cd/home/Home/
Dit repair-tool is te downloaden van https://sourceforge.net
BackupPC: App Installatie
BackupPC is gratis disk-to-disk backup pakket met een web-based frontend.
BackupPC is een module voor het maken van backups van Windows en Linux servers en PC's naar een serverschijf. Het ondersteunt het maken van backups via SMB (Server Message Block) gebruikmakend van Samba, tar over SSH/RSH/NFS of Rsync.
BackupPC is een robuuste, betrouwbare en goed gedocumenteerde Applicatie
Installatie
Update de repository:
root@testserver:~# apt update -y
Installeer:
root@testserver:~# apt install backuppc
The following NEW packages will be installed:
backuppc
backuppc-rsync
fontconfig
libarchive-zip-perl
libbackuppc-xs-perl
libcairo2
libdatrie1
libdbi1t64
libfile-listing-perl
libgraphite2-3
libharfbuzz0b
libpango-1.0-0
libpangocairo-1.0-0
libpangoft2-1.0-0
libpixman-1-0
librrd8t64
libsmbclient0
libthai-data
libthai0
libtime-parsedate-perl
libxcb-render0
libxcb-shm0
libxrender1
rrdtool
smbclient
0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,185 kB of archives.
After this operation, 14.1 MB of additional disk space will be used.
Accepteer 'apache2' webserver
Noteer URL http://homeserver/backuppc/
User is 'backuppc' en noteer (tijdelijk) wachtwoord 'LBBk6xV0'
Setting up backuppc (4.4.0-8build1) ...
apache2_invoke: Enable configuration backuppc.conf
Adding password for user backuppc
...
Creating config file /etc/backuppc/config.pl with new version
Created symlink /etc/systemd/system/multi-user.target.wants/backuppc.service → /usr/lib/systemd/system/backuppc.service.
WIJZIG Backuppc wachtwoord
root@testserver:~# htpasswd /etc/backuppc/htpasswd backuppc
New password: Zie Lastpass 'homerserver backuppc'
Re-type new password:
Updating password for user backuppc
Wijzig poort BackupPC van 80/433 naar 81
Open BackupPC in webbrowser
Backuppc is nu geïnstalleerd en de nodige instellingen voor apache2 zijn aangebracht:
In /etc/apache2/conf-available vinden we: backuppc.conf -> /etc/backuppc/apache.conf
en in
/etc/apache2/conf-enabled is aangebracht: backuppc.conf -> ../conf-available/backuppc.conf
Het bestand /etc/backuppc/apache.conf bevat de directives voor het openen van de BackupPC App in een webbrowser.
Download /etc/backuppc/apache.conf
Alias /backuppc /usr/share/backuppc/cgi-bin/ AllowOverride None # Uncomment the line below to ensure that nobody can sniff important # info from network traffic during editing of the BackupPC config or # when browsing/restoring backups. # Requires that you have your webserver set up for SSL (https) access. # SSLRequireSSL Options ExecCGI FollowSymlinks AddHandler cgi-script .cgi DirectoryIndex index.cgi AuthUserFile /etc/backuppc/htpasswd AuthType basic AuthName "BackupPC admin"# Comment out this line once you have setup HTTPS and uncommented SSLRequireSSL # Require local # This line ensures that only authenticated users may access your backups Require valid-user
LET OP: Require local uitmarkeren
Met deze gemaakte instellingen zoals de Alias '/backuppc' kan de App geopend worden met de URL : http://homeserver/backuppc
Note:
Op deze manier heeft elke bezoeker van het web (poort 80 of 443) ook toegang tot BackupPC !!
Er is alleen nog een wachtwoord die ze tegenhoudt.
Open BackupPC via poort 81
Door voor BackupPC een Virtual Host te gebruiken die niet luistert op poort 80 en/of 443 is BackupPC niet meer bereikbaar via het web.
Zie ook: Wijzig poort phpMyAdmin van 80/443 naar 81
Voer de volgende stappen uit:
- Als er al een symbolic link naar /etc/backuppc/apache.conf gemaakt is in /etc/apache2/conf-enabled, verwijder deze dan.
# a2disconf backuppc
# rm /etc/apache2/conf-available/backuppc
- Open in /etc/apache2/sites-available het bestand 002-mysite81.conf en voeg hier een Include voor BackupPC toe:
Listen 81
<VirtualHost *:81
Include /etc/phpmyadmin/apache.conf
ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined
Include /etc/backuppc/apache.conf
</VirtualHost>
- Enable de site 002-mysite81.conf:
# a2ensite 002-mysite81
# systemctl restart apache2.service
- Verifiëer firewall rule:
# ufw allow from 192.168.178.0/26 to any port 81
dwz: open poort 81 inkomend van trusted ip's. Dus alleen toegang voor vertrouwde IP’s in het thuisnetwerk.
- BackupPC is nu alleen op het thuisnetwerk beschikbaar met url: http://homeserver:81/backuppc
Backup Opslag Locatie
BackupPC slaat bij default de data op in de map '/var/lib/backuppc'.
Ten behoeve van gecentraliseerde dataopslag wordt zoals uitgewerkt in de sectie Server::Gebruikersdata Opslag een bindmount toegepast en de backups staan resulterend fysiek op locatie: /store/backup/backuppc.
Voeg backuppc toe aan sudoers lijst
Voor commando's zoals 'rsync', 'ping', 'tar' etc heeft BackupPC root access nodig.
Om te voorkomen dat elke keer het sudo gebruiker wachtwoord
gegeven moet worden voegen we gebruiker en groep 'backuppc' toe aan Sudoers
Zie ook Sudo zonder wachtwoord
Maak in de map /etc/sudoers.d een nieuw bestand 'backuppc' aan.
Edit bestand /etc/sudoers.d/backuppc en voeg toe de regels:
# Allow backuppc to run tar without a password
# backuppc ALL=NOPASSWD: /bin/tar
# ALLOW backuppc to run any command without a password
backuppc ALL=(ALL) NOPASSWD: ALL
Voeg Admin 'ububen' toe aan groep 'backuppc'
Backuppc slaat per default alle data op in bestanden met permissies backuppc:backuppc en mod 640 bijvoorbeeld:
root@testserver:~# ls -l /vault/backuppc
total 131978168
-rw-r----- 1 backuppc backuppc 5710929972 Jan 22 03:05 benovo.4.tar.gz
-rw-r----- 1 backuppc backuppc 17459095190 Jan 20 23:45 ben-pc.10.tar.gz
-rw-r----- 1 backuppc backuppc 24063022560 Jan 14 16:33 ben-pc.3.tar.gz
-rw-r----- 1 backuppc backuppc 11446109807 Jan 21 23:11 erica.1.tar.gz
De Ubuntu Homeserver Admin is een 'non-root' gebruiker en deze Admin 'ububen' kan bovenstaande bestanden alleen lezen door via 'sudo' 'root' privileges te krijgen.
De Raspberry Backup Server laadt bovenstaande bestanden door middel van RSYNC. Hierbij wordt ingelogd als de Admin van de Ubuntu Server 'ububen'.
Nu krijgy RSYNC echter niet de benodigde
leestoegang! En remote 'sudo' werkt (gelukkig) niet.
Om te zorgen dat de Admin de bestanden wel kan lezen zonder sudo voegen we Admin 'ububen' toe aan de 'backuppc' groep.
Zie ook Essentiële commando's
root@testserver:~# usermod -aG backuppc ububen
root@testserver:~# less /etc/group
...
clamav:x:113:
ububen:x:1000:
lanshare:x:1001:ububen,erica,ben,benjamin,minidlna
erica:x:1002:
ben:x:1004:
sambashare:x:988:
benjamin:x:1006:
mysql:x:114:
backuppc:x:115:ububen
minidlna:x:116:
Basis Configuratie Instellingen
Maak zonodig gebruik van de zeer uitgebreide BackupPC Online Manual
Alle specifieke backuptaken zullen in de hierna volgende secties BackupPC Serverdata, BackupPC Netwerk PC's en BackupPC Archiveren naar Safe nader geconfigureerd worden.
De BackupPC Configuratie Parameters zijn opgeslagen in /etc/BackupPC/config.pl en voor de individuele hosts in /etc/BackupPC/pc/<hostnaam>.pl
Nu maken we alleen de globale configuratie instellingen :
- Open de BackupPC Administratie Console met de url: http://homeserver:81/backuppc
- Selecteer tab CGI en zet CgiDateFormatMMDD naar '0' en save.
Hiermee zetten we het datumformaat van US naar International - Selecteer tab Email en zet EmailUserDestDomain naar 'makkink.eu'
- Selecteer tab Schedule en wijzig BlackoutPeriods > weekDays naar '0, 1, 2, 3, 4, 5, 6' (alle dagen) en save
- Selecteer tab XFER en zet XferMethod > 'rsync'
- Selecteer tab Server en zet pingPath > '/bin/ping'
- selecteer tab Backup Settings en verwijder alle entries uit: NmbLookupCmd en NmbLookupFindHostCmd. Zet PingCmd > '/usr/local/bin/wolping -c1 -w3 $host'.
Zie ook BackupPC configuren voor backup van de client-PC's
Verder handhaven we de default instellingen van BackupPC
Schedule
Met de default 'Schedule' instellingen wordt dagelijks een backup gemaakt beginnend met een full backup en de volgende 6 dagen een incremental. Na een week volgt dan weer opnieuw een full backup.
Het schema is zo ingesteld dat de backups van afgelopen 7 dagen bewaard worden. Full backups worden bewaars zolang er nog op deze full gebaseerde incremental backup is.
Queue
Als een host (tijdelijk) niet beschikbaar is (bijv. uitgeschakeld of buiten WiFi bereik) dan zal geen backup gemaakt worden. Als een backup niet lukt dan wordt de job in een queue geplaatst en elk uur opnieuw herstart.
BackupPC 4.4.0-8build1 Bug patch
De versie van BackupPC in de Ubuntu Server Repository is op 09-02-2025 is nog steeds backuppc/noble,now 4.4.0-8build1 amd64 [installed]
Deze versie van BackupPC heeft een bug in het bestand /usr/share/backuppc/bin/BackupPC_backupDelete.
Dit heeft geen invloed op de werking, maar resulteert in onderstaande melding dat het printen naar het logbestand een fout bevat:
2025-02-08 17:00:06 Removing backup #0 2025-02-08 17:00:06 Old package separator used in string at /usr/share/backuppc/bin/BackupPC_backupDelete line 102. 2025-02-08 17:00:06 (Did you mean "$Host\'s" instead?) 2025-02-08 17:00:06 BackupPC_backupDelete: removing #0
Regel 102 is: print(STDERR "BackupPC_backupDelete: Can't read $Host's config file: $error\n")
Het probleem is hier de variabele $Host gevold door 's waarbij de single quote geïnterpreteerd wordt als een package separator.
De gesuggereerde plaatsing van een escape \ direct voor de quote onderdrukt inderdaad de foutmelding maar is de variabele $Host's bestaat niet.
Het BackupPC team heeft dit 26-04-2024 correct gepatcht in BackupPC versie 4.4.0-9 : print(STDERR "BackupPC_backupDelete: Can't read ${Host}'s config file: $error\n")
Zie avoid "Old package separator used in string" warnings
Het Ubuntu Server team heeft deze upgrade echter nog niet opgenomen.
Op mijn servers heb ik daarom de patch op de hand uitgevoerd in de bestanden:
-
/usr/share/backuppc/bin/BackupPC_backupDelete
-
/usr/share/backuppc/bin/BackupPC_backupDuplicate
-
/usr/share/backuppc/bin/BackupPC_migrateV3toV4
BackupPC: Serverdata backup
De server (local host) is opgezet volgens de gecentraliseerde dataopslag struktuur. Op de backup flowchart is te zien dat deze opslag globaal verdeeld is in een 'live' en een 'backup' opslag.
De 'live' opslag bevat de server admin- en user-data, de netwerk fileserver-data en de webserver-data.
Dagelijkse backups van 'live' naar 'backup'
Deze sectie specificeert de configuratie
van BackupPC voor het veiligstellen van de 'live' data middels dagelijkse backups naar de 'backup' opslag.
In de hierna volgende host configuraties zijn op Homeserver de volgende schedules in gebruik:
![]() |
![]() |
![]() |
ben-pc | Full: 1x /week, bewaar 4 Incr.: 1x /dag, bewaar 6 |
Behoorlijk volume, veel activiteit, veel experimenten, met gevaar van late ontdekking |
benovo | Full: 1x /week, bewaar 2 Incr.: 1x /dag, bewaar 6 |
Beperkt volume, weinig activiteit |
erica | Full: 1x /week, bewaar 2 Incr.: 1x /dag, bewaar 6 |
Behoorlijk volume, weinig activiteit |
server | Full: 1x /week, bewaar 4 Incr.: 1x /dag, bewaar 6 |
Behoorlijk volume, veel activiteit, veel experimenten, met gevaar van late ontdekking |
server-afbeeldingen | Full: 1x /maand, bewaar 1 Incr.: 1x /dag, bewaar 27 |
Groot volume, redelijk veel activiteit |
server-documenten | Full: 1x /maand, bewaar 1 Incr.: 1x /dag, bewaar 27 |
Groot volume, redelijk veel activiteit |
server-e-books | Full: 1x /maand, bewaar 1 Incr.: 1x /dag, bewaar 27 |
Groot volume, relatief lage activiteit |
server-muziek | Full: 1x /maand, bewaar 1 Incr.: 1x /dag, bewaar 27 |
Groot volume, relatief lage activiteit |
server-video | Full: 2x /jaar, bewaar 1 Incr.: 1x per week, bewaar 4 |
Erg hoog volume, weinig activiteit |
server-www | Full: 1x /week, bewaar 4 Incr.: 1x /dag, bewaar 27 |
Behoorlijk volume, veel activiteit, veel experimenten, met gevaar van late ontdekking |
Virtual Host
BackupPC is een App feitelijk bedoeld voor het maken van backups van Windows en Linux PC's naar een serverschijf, toch is het ook prima inzetbaar voor de backup van bestanden op de server zelf (Local Host).
Er moeten dan wel 'virtuele' hosts aangemaakt worden die niet bestaan op het lokale netwerk.
Het grote volume van de 'live' data wordt verdeeld over BackupPC 'hosts' die de backups op verschillende tijdstippen over de dag verdeeld uitvoeren.
- Host 'server' : alle /store/live mappen behalve ../webroot, ../home/files, ../home/wpdata en ../home/pwgdata
- Host 'server-afbeeldingen': /store/live/home/files/afbeeldingen
- Host 'server-documenten': /store/live/home/files/documenten
- Host 'server-e-books': /store/live/home/files/e-books
- Host 'server-muziek': /store/live/home/files/muziek
- Host 'server-video': /store/live/home/files/video
- Host 'server-www': /store/live/webroot (/var/www/html) behalve ../piwigo en ../blog
Host 'server' configuratie
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voer host 'server' in
- Omdat op de server geen mailserver actief is heeft het geen zin om de 'user' in te voeren.
- Save - Selecteer Per-PC config: Hosts > server en daarna server > Edit Config
- Edit Backup Settings. Omdat de bestanden waarvan we een backup wensen zich op de 'local host' bevinden is er geen 'Client Lookup' nodig.
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg.
- Edit XFer. Zet XferMethod naar: 'rsync'
- Vink override aan van RsyncShareName en zet entry naar: /store/live
- Vink override van BackupFilesExclude en zet entries naar: * en /webroot, * en /home/files, * en /home/wpdata en * en /home/pwgdata
- Vink override van RsyncBackupPCPath en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Edit Schedule.
- Vink override aan van BlackoutPeriods en zet entry hourBegin: 8 en hourEnd: 2.1 (om backup van 02:00 uur te voorkomen) en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
- Zet FullPeriod 6.97, FullKeepCnt 4, IncrPeriod 0.7, IncrKeepCnt 6
- BackupPC wakeup is elk uur, en daarom zal volgens bovenstaand schema de backup dagelijks om plus minus 03:00 uur gemaakt worden - De configuratie wordt opgeslagen in /etc/backuppc/server.pl
- De backup van host 'server' wordt opgeslagen in /store/backup/backuppc/pc/server
Host 'server-afbeeldingen' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
- Host: 'server-afbeeldingen'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- RsyncShareName override en zet entry naar: /store/live/home/files/afbeeldingen
- BackupFilesExclude geen override
- Vink override van RsyncBackupPCPath en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p (dummy entry voor rsync zonder ssh) - Per-PC config Schedule.
- Zet FullPeriod 27.95, FullKeepCnt 1, IncrPeriod 0.7, IncrKeepCnt 27
- BlackoutPeriods override en zet hourBegin: 8 en hourEnd: 3.1 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
Resulteert in dagelijkse backup om +/- 04:00 uur.
- De configuratie wordt opgeslagen in /etc/backuppc/server-afbeeldingen.pl
- De backup van host 'server-afbeeldingen' wordt opgeslagen op /store/backup/backuppc/pc/server-afbeeldingen
Host 'server-documenten' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
- Host: 'server-documenten'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- Vink override van RsyncShareName aan en zet entry naar: /store/live/home/files/documenten
- Vink override van BackupFilesExclude aan en zet entry: * en /Mirror-bens-pc
- Vink override van RsyncBackupPCPath aan en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd aan en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Per-PC config Schedule.
- Zet FullPeriod 27.95, FullKeepCnt 1, IncrPeriod 0.7, IncrKeepCnt 27
- BlackoutPeriods override en zet hourBegin: 10 en hourEnd: 4.1 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
Resulteert in dagelijkse backup om +/- 05:00 uur.
- De configuratie wordt opgeslagen in /etc/backuppc/server-documenten.pl
- De backup van host 'server-documenten' wordt opgeslagen op /store/backup/backuppc/pc/server-documenten
Host 'server-e-books' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
- Host: 'server-e-books'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- RsyncShareName override en zet entry naar: /store/live/home/files/e-books
- BackupFilesExclude geen override
- Vink override van RsyncBackupPCPath aan en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd aan en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Per-PC config Schedule.
- Zet FullPeriod 27.95, FullKeepCnt 1, IncrPeriod 0.7, IncrKeepCnt 27
- BlackoutPeriods override en zet hourBegin: 11 en hourEnd: 5.1 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
Resulteert in dagelijkse backup om +/- 06:00 uur.
- De configuratie wordt opgeslagen in /etc/backuppc/server-e-books.pl
- De backup van host 'server-e-books' wordt opgeslagen op /store/backup/backuppc/pc/server-e-books
Host 'server-muziek' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
- Host: 'server-muziek'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- RsyncShareName override en zet entry naar: /store/live/home/files/muziek
- BackupFilesExclude geen override
- Vink override van RsyncBackupPCPath aan en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd aan en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Per-PC config Schedule.
- Zet FullPeriod 27.95, FullKeepCnt 1, IncrPeriod 0.7, IncrKeepCnt 27
- BlackoutPeriods override en zet hourBegin: 12 en hourEnd: 6.1 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
Resulteert in dagelijkse backup om +/- 07:00 uur.
- De configuratie wordt opgeslagen in /etc/backuppc/server-muziek.pl
- De backup van host 'server-muziek' wordt opgeslagen op /store/backup/backuppc/pc/server-muziek
Host 'server-video' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
- Host: 'server-video'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- RsyncShareName override en zet entry naar: /store/live/home/files/video
- BackupFilesExclude geen override
- Vink override van RsyncBackupPCPath aan en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd aan en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Per-PC config Schedule.
- Zet FullPeriod 182.5, FullKeepCnt 1, IncrPeriod 6.97, IncrKeepCnt 4
- BlackoutPeriods override en zet hourBegin: 8 en hourEnd: 1.1 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6
Resulteert in dagelijkse backup om +/- 02:00 uur.
- De configuratie wordt opgeslagen in /etc/backuppc/server-video.pl
- De backup van host 'server-video' wordt opgeslagen op /store/backup/backuppc/pc/server-video
Host 'server-www' configuratie
Volg de procedure als omschreven in Host 'server' configuratie.
Note: Exclude PiWiGo en Blog met alle images!
- Host: 'server-www'
- Per-PC config Backup Settings:
- Laat NmbLookupCmd leeg als het is.
- Laat NmbLookupFindHostCmd leeg als het is.
- Vink override van PingCmd aan en maak veld leeg. - Per-PC config XFer. Laat XferMethod als het is: 'rsync'
- RsyncShareName override en zet entry naar: /store/live/webroot
- BackupFilesExclude override en zet entry: * en /piwigo en * en /blog
- Vink override van RsyncBackupPCPath aan en zet entry naar: /usr/libexec/backuppc-rsync/rsync_bpc
- Vink override van RsyncClientCmd aan en zet entry naar: /usr/bin/rsync
- Vink override van RsyncSshArgs en zet entry naar: /usr/bin/sudo -p - Per-PC config Schedule.
- Zet FullPeriod 6.97, FullKeepCnt 4, IncrPeriod 0.7, IncrKeepCnt 6
- BlackoutPeriods override en zet hourBegin: 13 en hourEnd: 8 en zet entry weekDays: 0, 1, 2, 3, 4, 5, 6.
Resulteert in dagelijkse backup om +/- 09:00 uur.
- FullKeepCnt override en zet entry op 4. Hierdoor worden er extra Full backups bewaard zonder de bijbehoerende incrementals.
- De configuratie wordt opgeslagen in /etc/backuppc/server-www.pl
- De backup van host 'server-www' wordt opgeslagen op /store/backup/backuppc/pc/server-www
BackupPC: Netwerk PC's backup
De testserver is opgezet volgens de ClearOS gecentraliseerde dataopslag struktuur. Op de backup-flowchart is te zien dat deze opslag globaal verdeeld is in een 'live' en een 'backup' opslag.
Backups van 'host PC's' naar 'backup'
BackupPC is een ClearOS module feitelijk bedoeld voor het maken van backups van Windows en Linux PC's naar een serverschijf.
In de default configuratie draait BackupPC elk uur en checkt van elke geconfigureerde host of de maximum tijd sinds de laatste backup verstreken is. In dat geval wordt verbinding gemaakt met de host voor het maken van de nieuwe backup. Lukt dit niet omdat de host uitgeschakeld is of een mobiele host zich buiten wifi bereik bevindt, dan wordt de poging elk uur herhaald totdat het wel lukt. Als dit op zijn beurt langer duurt dan de ingestelde maximum pogingen dan ontvangt de admin een e-mail. Wordt een in voortgang zijnde backup afgebroken dan wordt de betreffende host in een queue geplaatst en wordt elk uur geprobeerd de onderbroken backup af te maken.
De nu volgende sectie behandeld de configuratie van BackupPC voor het veiligstellen van de data op de client PC's(hosts) in het lokale netwerk middels dagelijkse backups naar de server 'backup' opslag.
BackupPC communicatie met Netwerk PC's
Voor het beschikbaar maken van de data op de client PC's moeten eerst een aantal zaken opgezet worden:
- HOSTS bestand (optioneel). BackupPC werkt met de hostnaam van de client-PC's die middels NetBIOS over TCP/IP vertaald wordt naar een IP. Deze 'vertaalslag' werkt beter door de client-PC's op de server op te nemen in een soort lokaal DNS bestand (/etc/hosts). Ook goed dit te doen op alle Windows PC's (c:\Windows\System32\drivers\etc\hosts).
- WOL met BackupPC (optioneel). Middels een zelf te schrijven script kan BackupPC een client-PC in slaapstand proberen te wekken voor een backup.
- RSYNCD pakket. Een op elke client-PC te installeren deamon die BackupPC na authorisatie leestoegang geeft tot de in de deamon gespecificeerde mappen en bestanden.
- GMail-backup. Wekelijks wordt op de Windows PC's Thunderbird gestart om de webmail accounts te synchroniseren en lokaal op te slaan.
HOSTS bestand voor 'lokaal DNS'
BackupPC ondersteunt mobiele situaties waar bijvoorbeeld laptops slechts tijdelijk met het netwerk verbonden zijn en met dynamische IP adressen (DHCP). Hiervoor werkt BackupPC met de hostnaam van de client-PC's die middels NetBIOS over TCP/IP vertaald wordt naar een IP.
Dit is niet altijd betrouwbaar in een Windows netwerk waar de server niet dienst doet als router, i.e. netwerkbeheerder. Zie tevens How BackupPC Finds Hosts voor meer informatie.
Als dit probleem zich voordoet kan beter met vaste IP's gewerkt worden.
Vaste IP's
Op de hier beschreven homeserver wordt voor Samba access en authorisatie ook al gebruik gemaakt van vaste IP's voor trusted PC's. De toekenning van vaste IP's voor netwerkclients kan per router verschillen, maar zie voor een voorbeeld de sectie Server::Samba Beperking toegang tot 'trusted-IP's'.
Hosts bestand
Als van een hostnaam de bijbehorende IP niet gevonden wordt bij een naamserver (DNS) dan zal het systeem zoeken naar een verwijzing in het bestand /etc/hosts.
Door de BackupPC client-PC's met een vast IP op te nemen in dit hosts-bestand ('lokaal DNS') wordt snel een betrouwbare netwerk communicatie tot stand gebracht.
Als voorbeeld het /etc/hosts bestand op de mainserver:
127.0.0.1 localhost localhost.localdomain 192.168.178.4 thuisserver.makkink.eu mainserver 192.168.178.5 homeserver.makkink.eu homeserver 192.168.178.2 ben-pc 192.168.178.10 pi-nas
192.168.178.11 pi-nas
192.168.178.14 erica
192.168.178.15 benovo
WOL met BackupPC
Als een host (client-PC) in slaapstand staat dan bestaat deze niet op het netwerk en kan BackupPC niet met deze PC communiceren.
Als van deze client-PC Wake On Lan (WOL) ingesteld is kan middels een zelf te schrijven script BackupPC de PC in slaapstand proberen te wekken voor een backup.
WOL client-PC
Het toestaan van WOL op een client-PC verschilt per PC en OS.
- Zoek om te beginnen in de BIOS, meestal bij Power management, en sta hier wake-up (door Magic-packet) toe. Deze optie komt niet meer voor op Dell XPS-8960.
- Zoek vervolgens in de BIOS naar Power Options en disable DeepSleep Control S4 en S5
- Ga in het Windows OS naar Configuratiescherm > Energiebeheer > In linker kolom: Het gedrag van de aan/uit-knoppen bepalen > Instellingen wijzigen die momenteel niet beschikbaar zijn > Verwijder vink bij 'Snel opstarten inschakelen'. Dus schakel snel opstarten uit!
- Zoek daarna in het OS bij apparaatbeheer naar de eigenschappen van de netwerkkaart en en ga in 'Configuratie' naar TAB 'Energiebeheer en vink alle drie opties aan:
a. Dit apparaat mag de computer uit de slaapstand halen
b. De computer mag dit apparaat uitschakelen.
c. Alleen een Magic-pakket mag de PC wekken
Note:
WOL werkt alleen met Ether (LAN) verbindingen en niet met Wifi (WLAN)
ETHER-WAKE
De Ubuntuserver distributie is voorzien van het etherwake programma. Dit programma genereert en verstuurd een Wake-On-LAN (WOL) 'Magic Packet' om een machine in slaaptoestand te wekken. Het enige benodigde argument is het MAC adres of een hostnaam die middels een 'ethers database' naar een MAC adres vertaald kan worden.
Zie ook # man etherwake en # man ethers.
Omdat BackupPC met de hostnaam van de client-PC's werkt moeten we alle client-PC's die we met Ether-Wake willen wekken in de 'ethers database' /etc/ethers opnemen. Creëer zonodig het ethersbestand.
Gebruik het commando # arp om een lijst te krijgen van alle machines op het lokale netwerk met de bijbehorende MAC adressen (Indien nog niet geïnstalleerd # arp install net-tools voor arp)
Als voorbeeld het /etc/ethers bestand op de mainserver:
CC:96:E5:4A:F3:02 ben-pc
Om bijv. de host 'ben-pc' te wekken volstaat nu het commando: # etherwake -i eno1 ben-pc
Etherwake gebruikt per default netwerk interface eth0. De homeserver heeft echter netwerk interface eno1
SUDO
Het commando # ether-wake moet uitgevoerd worden als root
De gebruiker 'backuppc' kan het programma 'ether-wake' wel uitvoeren middels het commando # sudo.
Om dit zonder een wachtwoord te kunnen doen moet het commando # /sbin/etherwake toegevoegd worden in het bestand /etc/sudoers aan de regel van 'backuppc'.
Edit de regel voor 'backuppc' in het bestand /etc/sudoers met het commando # visudo:
# Allows user backuppc to execute listed programs as root without password
backuppc ALL=NOPASSWD: /bin/gtar, /usr/bin/rsync, /sbin/etherwake
OF zoals op de homeserver ingesteld:
# ALLOW backuppc to run any command without a password
backuppc ALL=(ALL) NOPASSWD: ALL
Dit testen we door 'backuppc' te worden met het commando # su -s /bin/bash backuppc.
Nu kan backuppc de host 'ben-pc' wekken met het commando # sudo etherwake ben-pc
WOLPING
Als BackupPC een hostprofiel uitvoert wordt als eerste een ping naar de host (client-PC) gestuurd. Alleen als een ping ontvangen wordt gaat de uitvoering verder.
In de BackupPC Configuratie Editor > tab Backup Settings is de default 'PingCmd' gezet op: $pingPath -c1 -w3 $host (Hierbij is $pingPath het pad /bin/ping).
Voor de host 'ben-pc' wijzigen we deze entry voor 'PingCmd' in: /usr/local/bin/wolping -c1 -w3 $host
In plaats van het gewone ping programma wordt nu het, zelf aan te maken, script 'wolping' uitgevoerd.
Het stuurt ook de ping maar als deze niet lukt wordt met ether-wake geprobeerd de host te wekken en na enige wachttijd wordt dan opnieuw een ping gestuurd.
Script WOLPING
#!/bin/bash # *********************************************************************** # * WOLPING voor Ubuntu Ben Makkink 11-1-2025 * # *********************************************************************** # * Dit script is voor Wake On Lan middels het BackupPC ping commando * # * wat het eerste is wat BackupPC doet voordat het de backup start * # * Dit script is een vervanging dat de remote pc pingt en in het geval * # * er geen responce komt, deze wekt middels een zgn. Magic Packet. * # * Na enige wachttijd wordt dan opnieuw gepingd. * # * Voorwaarde is dat de PC naam en IP bekend zijn. In geval van NETBIOS* # * problemen: de PC vermelden in /etc/hosts * # * Etherwake werkt met het MAC address, zorg dus dat PC naam en de * # * bijbehorende MAC-address vermeld zijn in /etc/ethers * # * Specificeer netwerk interface als deze anders is dan 'eth0' * # * Voor de homeserver is dit 'eno1' dus: # etherwake -i eno1 $host * # *********************************************************************** PING=/bin/ping ARG1=$1 ARG2=$2 WAKEHOST=$3 ETHWAKE='/usr/bin/sudo /sbin/etherwake -i eno1' #thuiserver: enp34s0 SLEEPTIME=30s logger "Backuppc pinging $1 $2 $3" function fwol { TO_WAKEUP=$1 $ETHWAKE $1 if [ $? -eq 0 ] then WOL_RES="OK" else WOL_RES="FAIL" fi } $PING $ARG1 $ARG2 $WAKEHOST >>/dev/null 2>&1 if [ $? -ne 0 ]; then fwol $WAKEHOST if [ "$WOL_RES" = "FAIL" ]; then exit 1 fi sleep $SLEEPTIME $PING $ARG1 $ARG2 $WAKEHOST if [ $? -eq 0 ] then logger "success waking $WAKEHOST." else logger "unable to wake $WAKEHOST." exit 1 fi else $PING $ARG1 $ARG2 $WAKEHOST fi exit 0
Dit testen we door 'backuppc' te worden met het commando # su -s /bin/bash backuppc.
Nu kan backuppc de host 'ben-pc' wekken met het commando # wolping -c1 -w3 ben-pc
RSYNCD installeren en configureren op client-PC's
Een deamon op elke PC
Op elke client-PC waarvan we met BackupPC middels de 'rsyncd' methode een backup willen maken moeten we het RSYNCD pakket installeren.
De package zet op een Windows PC een Linux 'rsync' deamon op waarmee BackupPC op de linux server na authorisatie toegang krijgt tot gespecificeerde Windows bestanden voor backup middels het Linux 'rsync' programma.
Hieronder, als voorbeeld, de installatie en configuratie van een Windows PC met hostnaam 'Tablet'
Configuraties uit te voeren op elke Windows PC
- Download de RSYNCD installer van de Sourceforge BackupPC projectpagina naar de Windows PC. Selecteer de laatste versie cygwin-rsyncd..._installer.exe.
- Dubbelklik op cygwin-rsyncd-x.x.x.x_installer.exe en de deamon wordt geïnstalleerd in map c:\rsyncd
- Edit het bestand c:\rsyncd\rsyncd.secrets met bijvoorbeeld Kladblok.
Voeg een nieuwe lijn toe met formaat: gebruikersnaam:wachtwoord (Meerdere regels met gebruikersnaam en wachtwoord is mogelijk).
Voeg na de laatste gebruiker een nieuwe lege lijn toe.
Klik hier voor een voorbeeld van een rsyncd.secrets bestand.
De gebruikersnaam en wachtwoord zal BackupPC later gebruiken om zich te authentiseren. - Maak in c:\rsyncd een batchbestand genaamd 'backuppc-win10-firewall-testserver.bat' met onderstaande inhoud:
rem backuppc-win7_8_10-firewall.bat - Install firewall rules for rsycnd on Win 7, 8 or 10 set REMOTE=192.168.178.5,LocalSubnet netsh advfirewall firewall add rule name="RSync Program" dir=in action=allow program="C:\rsyncd\rsync.exe" enable=yes remoteip=%REMOTE% profile=domain netsh advfirewall firewall add rule name="RSync Related Port" dir=in action=allow protocol=TCP localport=873 netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow pause
Geef bij REMOTE het IP-adres van de server met BackupPC, in dit geval de testserver op 192.168.178.5
Installeer de firewall rules voor rsyncd door het bestand als ADMINISTRATOR eenmalig uit te voeren. - Edit het bestand c:\rsyncd\rsyncd.conf
Maak eerst een backup-kopie en noem het 'rsyncd.origineel.conf'
Breng wijzigingen aan en maak shares (zie gele highlights):
# # A sample rsyncd.conf file usable with BackupPC. This file does not # completely document all of the settings for rsyncd.conf - see the # man page that comes with the rsync ditribution for a comprehensive # overview off all available settings. # # # Allow rsync to change the root directory to the module location # upon connection of a client. This is disabled for Win32 as we do # not provide a full Cygwin environment. # # Warning: with a setting of "false", absolute symlinks will be # stripped of their leading "/". See "use chroot" in the rsyncd.conf # man page. This is relevant for machines that support symlinks # (WinXX machines do not). # use chroot = false # # Limit the simultaneous rsync connections to 4. Changing # this to '1' should be sufficient for BackupPC. # Houden we op '2' zodat eventueel homeserver en testserver tegelijk bedient kunnen worden # max connections = 2 # # Uncomment this line and change the path if # you would like to log rsync messages. # # log file = c:/rsyncd/rsyncd.log # # The location of the rsync process ID file # Not good to have if your system is not cleanly shut down each time. # Disabling. -RSF # pid file = c:/rsyncd/rsyncd.pid # # The locations of the rsync lock file # lock file = c:/rsyncd/rsyncd.lock # # This is where we define the rsyncd modules. Add as many directories or # files are you wish. # # Voorbeeld voor het 'sharen' van d:\Data. Voor BackupPC is "Data" de # naam van de share (m.a.w. de waarde van $Conf(RsyncShareName) in de # BackupPC settings op de server voor deze client (host). # [Data] path = /cygdrive/d/Data comment = Data strict modes = false # Limit this share to just these users (needs to match $Conf{RsyncdUserName} # and the c:/rsyncd/rsyncd.secrets files) auth users = backuprsyncd # Password to match $Conf(RsyncdPasswd) secrets file = c:/rsyncd/rsyncd.secrets # List the IP address(es) of your BackupPC server(s), so only connections from these hosts will be allowed. hosts allow = 192.168.1.5, 192.168.1.4 # Do not allow restores to write to this share, select option download in zip instead read only = true list = false # Maak aanvullend de nodige shares aan [AppData] path = /cygdrive/c/Users/Ben/AppData/Roaming comment = AppData strict modes = false auth users = backuprsyncd secrets file = c:/rsyncd/rsyncd.secrets hosts allow = 192.168.1.5, 192.168.1.4 read only = true list = false [Drivers] path = /cygdrive/c/Drivers comment = Drivers strict modes = false auth users = backuprsyncd secrets file = c:/rsyncd/rsyncd.secrets hosts allow = 192.168.178.5, 192.168.178.4 read only = true list = false [Images] path = /cygdrive/d/Images comment = Images Ben-pc strict modes = false # Limit this share to just the Raspberry RSync user # and the c:/rsyncd/rsyncd.secrets files) auth users = backuprsyncd # Password sshpass -f ~/.rsync_pass_ben-pc to match secrets file = c:/rsyncd/rsyncd.secrets # List the IP address(es) of your Raspberry Backupserver, so only connections from these hosts will be allowed. hosts allow = 192.168.178.10, 192.168.178.11 # Do not allow restores to write to this share, select option download in zip instead read only = true list = false
NOTE: Het laatste blok [Images] wordt niet door Backuppc gebruikt maar hiermee lift de Raspberry Backupserver mee door het gebruik van de Rsync Daemon op de PC
Test RSYNCD installatie
Na de configuratie van RSYNCD op de client PC is het raadzaam deze te testen. Geef hiertoe van de Linux server het volgende commando:
Bovenstaande configuratie is toegepast op de client-PC 'ben-pc' met IP 192.168.1.2 en als we de share 'Drivers' kiezen om te kopieren naar /tmp dan is het commando:
# rsync -av backuprsyncd@192.168.178.2::Drivers /home/ben/tmp
Als we het commando uitvoeren zal het wachtwoord van 'backuprsyncd' gevraagd worden, geef het wachtwoord dat ingevoerd is in het bestand c:\rsyncd\rsyncd.secrets
Maak na de tijd op de server wel weer de map /tmp leeg.
Als de test met de eerste client-PC werkt volgen we bovenstaande procedures voor alle PC's op het netwerk waarvan we de gebruikersdata veilig wensen te stellen met BackupPC
GMail local backup met Thunderbird
Thunderbird GMail synchronisatie
Wekelijks wordt op de Windows PC's 'ben-pc' en 'erica' Thunderbird gestart om de respectievelijke webmail accounts (gmail) te synchroniseren en lokaal op te slaan.
Installeer Thunderbird op PC's als volgt:
E-mail Synchronisatie
- Download (https://www.thunderbird.net/nl/) en installeer Thunderbird (niet als de 'standaard' e-mail toepassing)
- Start de toepassing en stel bestaande e-mail account in (bijv Gmail account ben@makkink.eu) met wachtwoord onthouden.
Volg de wizzard voor configuratie met automatische instellingen.
Sla integratie over. - Synchroniseer de e-mail de 1e keer door de map ‘Alle e-mail' te selecteren.
Zorg dat deze map geopend is voordat Thunderbird afgesloten wordt. Hierdoor zal Thunderbird de volgende keer automatisch openen met deze map (en dus alle mail synchroniseren.
Agenda Synchronisatie
- Geef Thunderbird-menu weer (drie streepjes rechts in scherm):
- Selecteer Add-ons > Extensies. Verifieer dat al geïntegreerde add-on ‘Lightning’ ingeschakeld is.
- Selecteer in Add-ons > Extensies het zoekvak en type: ‘Provider for Google Calendar’, selecteer en installeer ‘Provider for Google Calendar’
- Na herstart van Thunderbird:
* Ga naar het menu van Thunderbird en selecteer Nieuw Bericht. Selecteer Agenda in het submenu.
* Selecteer, zodra de wizard wordt geopend: ‘Op het netwerk’ en klik op Volgende.
* Kies Google Agenda en klik op Volgende. Voer e-mailadres van Google in en klik op Volgende. - Als hierom wordt gevraagd, voer dan uw Gmail-accountdetails in en geef de Provider for Google Calendar-add-on toestemming om uw agenda’s te beheren.
- Kies de agenda’s die u in Thunderbird wilt gebruiken. In ieder geval ‘ben@makkink.eu’
- Klik op Volgende. Er is een bevestiging dat de agenda is aangemaakt. Klik op Voltooien en klik op ‘synchroniseren’.
Contacten Synchronisatie met TbSync
- Geef Thunderbird-menu weer (drie streepjes rechts in scherm):
- Selecteer Add-ons > Extensies en selecteer zoekvak en type: ‘TbSync’
Selecteer en installeer ‘TbSync’. - Selecteer Add-ons > Extensies en selecteer zoekvak en type: 'Google-4-TbSync'
Selecteer en installeer 'Google-4-TbSync' - Open Thunderbird > Extra > Add-ons & thema's: Klik op Add-on 'TbSync' en vervolgens op de steeksleutel
Het volgende scherm opent:
Selecteer: Account actions > Add new account > Google's People API
- Voer details van Client-account in.
1. Vul als naam in bijvoorbeeld: Makkink-TBSync.
2. Credentials:
Zie Exploring Linux::Projecten > Google Client Console voor Thunderbird voor het creëren van de benodigde Google ClientID en Client Secret.
In geval de credentials al eerder aangemaakt zijn, zie Exploring Linux::Projecten > Credentials opnieuw downloaden van Google Console
Klik na invullen op voltooien.
- Terug in het TbSync Accountmanager scherm:
!. Vink aan Enable and Synchronize this account
2. Vink aan 'available resources'
3. Set Synchronisatie op 1 minuut
4. Klik 'Synchronize now' en het Thunderbird Adresboek wordt gesynchroniseerd met Google Contacts
Overige Instellingen:
Ga naar Thunderbird Menu (3 streepjes) > Account instellingen.
Ga door alle tabs en verwijder vinkjes voor opties zoals meldingen en andere zaken die voor onze backup functie niet zinnig zijn.
Vink aan in tab 'Serverinstellingen': Op nieuwe berichten controleren bij opstarten.
Vink aan in tab 'Synchronisatie & opslag': Berichten voor alle mappen voor deze account op deze computer bewaren
Ga naar Thunderbird Menu (3 streepjes) > Instellingen > Algemeen en verwijder vinkje bij 'Wanneer thunderbird start, de startpagina in het berichtgedeelte tonen.
Ga ook onder Opties door alle tabbladen en verwijder zomogelijk alle vinkjes.
Schedulen van backups
Plaats map homeserver\documenten\Software\Thunderbird-Backup in C:\Program Files (x86)\
Maak in Windows taakbeheer een entry voor het wekelijks starten van Thunderbird met het DOS batchbestand
@Echo off Start Thunderbird.exe echo "Dit bestand start Thunderbird voor het Syncen van de GMailaccount." echo "Daarna volgt er een timeout zodat Thunderbird de synchronisatie afrond" echo 'Vervolgens wordt Thunderbird gesloten. Om een sharing violation te voorkomen' echo 'lassen we opnieuw een timeout in voordat de Thunderbird data' echo 'gekopieerd worden naar Thunderbird-BackupData op de d:\Data drive' timeout 300 TASKKILL /F /IM Thunderbird.exe timeout 60 xcopy /y /e %USERPROFILE%\AppData\Roaming\Thunderbird\Profiles d:\Data\Documenten\Thunderbird-BackupData
Alle Thunderbird data worden opgeslagen in het Thunderbird-profiel ..\AppData\Roaming\Thunderbird\Profiles\<xxxxxxxx>.default.
Deze resulterende profielbestanden zijn gelockt als Thunderbird open staat, daarom wordt na de synchronisatie Thunderbird weer afgesloten en de bestanden in ..\AppData\Roaming\Thunderbird\Profiles gekopieerd naar d:\Data\Documenten\Thunderbird-BackupData waar ze beschibaar zijn voor BackupPC voor lokale backup.
Thunderbird Backup en Restore
Backup
In Thunderbird onder Windows is dat feitelijk slechts het kopiëren van een map. C:\Users\{gebruikersnaam}\AppData\Roaming\Thunderbird\Profiles\, gevolgd door een willekeurige naam xxxx.default.
Het is precies déze map die je moet kopiëren om in één klap al je mail, instellingen, adresboeken enzovoorts te back-uppen.
Restore
Gaat er iets gruwelijk mis met je systeem en moest dit opnieuw geïnstalleerd worden, dan help je Thunderbird snel weer op weg.
Installeer het programma en maak een tijdelijke (al dan niet fake) mailaccount aan bij de eerste start van het programma.
Dat is nodig, omdat de net genoemde map met de random naam bij een nieuwe installatie van Thunderbird anders heet.
Sluit Thunderbird en blader met de Verkenner naar de nieuwe Profiles-map. Open de map met de extensie .default en verwijder alle daarin aanwezige bestanden.
Open vervolgens de xxxxx.default-map die je als back-up bewaard hebt. Kopieer álle bestanden uit die map naar de nieuwe .default-map op de c-schijf.
Als je daarna Thunderbird start werkt alles direct.
Als het Thunderbird programma nog goed werkt of door een image is teruggezet (met mogelijk oudere data) dan kun je de aanwezige xxxxx.default-map compleet verwijderen en door de backup vervangen.
Restore met Google MBOX Export
Om ruimte te besparen is er de optie een gedeelte van de GMail te exporten als een MBOX bestand, zoals door mij gedaan voor alle mail van de VvE.
Zie voor Google e-mail te exporteren naar een lokale map: GMail exporteren naar PC
Zie voor het in Thunderbird importeren gearchiveerde e-mail in een MBOX bestand: How to Open an MBOX File (Using Mozilla Thunderbird)
BackupPC configuren voor backup van de client-PC's
Voor iedere client-PC waarop RSYNCD geïnstalleerd is maken we in BackupPC een host aan met configuratie voor de backups.
Hieronder de instellingen van de client-PC's op het netwerk van de testserver zijnde 'ben-pc, 'erica', en 'benovo'.
Host 'ben-pc' configuratie
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voer host 'ben-pc' in
- Omdat op de server geen mailserver actief is heeft het geen zin om de 'user' in te voeren.
- Save - Selecteer Per-PC config: Hosts > 'ben-pc' en daarna 'ben-pc' > Edit Config
- Edit Backup Settings.
- Maak NmbLookupCmd leeg.
- Maak NmbLookupFindHostCmd leeg.
- Maak PingCmd als de default entry: /usr/local/bin/wolping -c1 -w3 $host
- Het script 'wolping' voert de 'ping' uit en als dit niet lukt wordt door een WOL geprobeerd de client-PC te wekken. Zie hiervoor sectie WOL met BackupPC
- Save - Edit XFer.
- Zet XferMethod: 'rsyncd'
- Vink override aan van RsyncShareName en zet entries naar: Data, AppData en Drivers.
We laten de share Images weg omdat dit een te groot volume genereert. We maken regelmatig op de hand een copie naar de externe images schijf.
- Maak RsyncdUsername: backuprsyncd
- Maak RsyncdPasswd als ingevoerd in het bestand c:\rsyncd\rsyncd.secrets
- Vink override van BackupFilesExclude en zet ShareName naar: AppData met entries: *.lock, /Dropbox, /Microsoft/Windows/Cookies en /Microsoft/Windows/Recent
- Save - Edit Schedule.
- Vink override aan van IncrPeriod en zet entry naar: 0,7 Hierdoor zal BackupPC proberen een backup te maken onmiddelijk na de BlackoutPeriod
- Vink overrides aan en zet FullPeriod 6.97, FullKeepCnt 4, IncrPeriod 0.7, IncrKeepCnt 6
- Vink override aan van BlackoutPeriods en zet entry hourBegin: 1 en hourEnd: 22.5
- BackupPC wakeup is elk uur, en daarom zal volgens bovenstaand schema de backup dagelijks om plus minus 23:00 uur gemaakt worden.
- De configuratie wordt opgeslagen in /etc/backuppc/ben-pc.pl
- De backup van host 'ben-pc' wordt opgeslagen op /store/backup/backuppc/pc/ben-pc
Host 'erica' configuratie
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voeg bij Hosts een nieuwe host toe met: 'erica=ben-pc'Als we dit saven wordt de complete configuratie van 'ben-pc' gekopieerd
- Save - Selecteer Per-PC config: Hosts > 'erica' en daarna 'erica' > Edit Config
- Edit Backup Settings.
- Laat NmbLookupCmd leeg.
- Laat NmbLookupFindHostCmd leeg.
- Maak PingCmd als de default entry: /bin/ping -c1 -w3 $host
Wolping werkt niet via wifi
- Save
- XFer Settings: 'erica' heeft dezelfde shares als 'ben-pc', dus:
- Override van BackupFilesExclude en ShareName: AppData met entries: *.lock, /Dropbox, /Microsoft/Windows/Cookies en /Microsoft/Windows/Recent - Schedule Settings:
- Hier wijzigen we ten opzichte van 'ben-pc' alleen de instelling voor BlackoutPeriods om de backup-workload wat te verdelen.
- Vink override aan van FullKeepCnt en zet entry op 2. Hierdoor wordt er een extra Full backup bewaard zonder de bijbehoerende incrementals.
- Vink override aan van BlackoutPeriods en zet entry hourBegin: 18 en hourEnd: 6.75
- BackupPC wakeup is elk uur, en daarom zal volgens bovenstaand schema de backup dagelijks om plus minus 07:00 uur gemaakt worden.
- De configuratie wordt opgeslagen in /etc/backuppc/erica.pl
- De backup van host 'erica' wordt opgeslagen op /store/backup/backuppc/pc/erica
Host 'tablet' configuratie
Niet meer in gebruik. Alleen als voorbeeld
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voeg bij Hosts een nieuwe host toe met: 'tablet=ben-pc'Als we dit saven wordt de complete configuratie van 'ben-xps' gekopieerd
- Save - Selecteer Per-PC config: Hosts > 'tablet' en daarna 'tablet' > Edit Config
Backup Settings: De instellingen van 'ben-xps' zijn ook correct voor 'tablet', dus hier wijzigen we niets
- XFer Settings: 'tablet' heeft dezelfde shares als 'ben-pc''. Bij BackupFilesExclude voegen we toe AppData/NVIDIA
- Schedule Settings:
- Hier wijzigen we ten opzichte van 'ben-pc' alleen de instelling voor BlackoutPeriods om de backup-workload wat te verdelen.
- Vink override aan van BlackoutPeriods en zet entry hourBegin: 22 en hourEnd: 7.5
- BackupPC wakeup is elk uur, en daarom zal volgens bovenstaand schema de backup dagelijks om plus minus 08:00 uur gemaakt worden. - De configuratie wordt opgeslagen in /etc/backuppc/tablet.pl
- De backup van host 'tablet' wordt opgeslagen op /store/backup/backuppc/pc/tablet
Host 'benovo' configuratie
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voeg bij Hosts een nieuwe host toe met: 'benovo=erica'Als we dit saven wordt de complete configuratie van 'erica' gekopieerd
- Save - Selecteer Per-PC config: Hosts > 'benovo' en daarna 'benovo' > Edit Config
Backup Settings: De instellingen van 'erica' zijn ook correct voor 'benovo', dus hier wijzigen we niets
- XFer Settings: 'benovo' heeft de zelfde shares als 'erica', dus:
Vink override van BackupFilesExclude en zet ShareName naar: AppData met entries: *.lock, /Dropbox, /Microsoft/Windows/Cookies en /Microsoft/Windows/Recent
maar aanvullend ook:
- ShareName: Data met entry: /Documenten/Mirror-bens-pc . - Schedule Settings:
- Hier wijzigen we ten opzichte van 'erica' alleen de instelling voor BlackoutPeriods om de backup-workload wat te verdelen.
- Vink override aan van FullKeepCnt en zet entry op 2. Hierdoor wordt er een extra Full backup bewaard zonder de bijbehoerende incrementals.
- Vink override aan van BlackoutPeriods en zet entry hourBegin: 18 en hourEnd: 8.75
- BackupPC wakeup is elk uur, en daarom zal volgens bovenstaand schema de backup dagelijks om plus minus 09:00 uur gemaakt worden. - De configuratie wordt opgeslagen in /etc/backuppc/benovo.pl
- De backup van host 'benovo' wordt opgeslagen op /store/backup/backuppc/pc/benovo
Backupschema van een Host stopzetten.
Als van één of meerdere Hosts (tijdelijk) geen backups gemaakt moeten worden, kunnen we dit in het schedule regelen zonder dat we een Host en/of de configuratie verwijderen.
Dit doen we eenvoudig met het instellen van een Blackout in de Schedule sectie.
- Selecteer een Host
- Edit Config (van de Host, niet de algemene config)
- Schedule > BackupDisable: vink Override aan en zet waarde naar 2
Klik op de link van BackupDisable voor onderstaande informatie
$Conf{BackupsDisable} = 0; Disable all full and incremental backups. These settings are useful for a client that is no longer being backed up (eg: a retired machine), but you wish to keep the last backups available for browsing or restoring to other machines. There are three values for $Conf{BackupsDisable}: 0 Backups are enabled. 1 Don't do any regular backups on this client. Manually requested backups (via the CGI interface) will still occur. 2 Don't do any backups on this client. Manually requested backups (via the CGI interface) will be ignored.
Testserver BackupPC schedule niet uitvoeren
Op de testserver is BackupPC volledig geinstalleerd en geconfigureerd, maar we willen dat er geen backups gemaakt worden.
Als eerste worden alle 'archivaris' commando's in crontab uitgemarkeerd.
Ten tweede zetten we zoals hierboven uitgelegd
$Conf{BackupsDisable} naar 1.
Dit doen we niet voor elke host individueel maar in BackupPC > Server > Edit Config > Schedule > $Conf{BackupsDisable} = 1
Hiermee wordt de default
$Conf{BackupsDisable} van alle hosts naar 1 gezet.
Check wel dat voor de individuele host er geen override op $Conf{BackupsDisable} ingesteld is.
BackupPC: Backups Archiveren naar Vault
Zoals uiteengezet in Server layout en backup strategie is de opslag van de Homeserver ingedeeld volgens de 3-2-1 regel.
De schijfopslag op de Ubuntu Homeserver is als volgt verdeeld:
- SDA met sda1 /boot/efi partitie en sda2 met het Ubuntu Server OS
- SDB met 'Live' gebruikersdata van Fileserver en Webserver)
3 Backups, 2 gescheiden drives en 1 gescheiden locatie.
- Backup 1:
SDC met 'Backup' van SDA en SDB en netwerk PC's - Backup 2:
SDD met 'Vault' met backup van SDC - Backup 3:
De backupdata op SDD worden uiteindelijk regelmatig weggeschreven naar een 'air-gapped' Backup Server
Onderstaande BackupPC backups Archiveren van Backup 1 naar Backup 2 (/Vault)
Archiveren
BackupPC ondersteunt het archiveren naar andere media, maar ook naar een fysiek gescheiden serverschijf. Backup maakt een archief aan van de meest recente backup van elke gespecificeerde host.
Met BackupPC kan helaas geen archivering gescheduled worden, er moeten elke keer op de hand één of meerdere te archiveren hosts geselecteerd worden.
Dit kan alleen opgelost worden door de archivering te starten uit een script dat uitgevoerd wordt via een cron.
archiveHost 'archivaris' Configureren
Om een archiveHost te configuren in BackupPC voegen we in het Hosts bestand een nieuwe host toe met een duidelijke naam
- Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
- Voeg bij Hosts een nieuwe host toe: 'archivaris' en Save - Selecteer Per-PC config: Hosts > 'archivaris' en daarna 'archivaris' > Edit Config
- Edit Backup Settings.
- Vink override aan en verwijder de default enties van: NmbLookupCmd , NmbLookupFindHostCmd en PingCmd
- Save - Edit XFer.
- Vink override aan van XferMethod en zet entry naar: 'archive'
- Vink override aan van ArchiveDest en zet entry naar: '/vault/backuppc'.
Deze directory moeten we zelf nog aanmaken! Zie punt 7.
- Save - De rest van de defaultinstellingen van host 'archivaris' kunnen gelaten worden voor wat ze zijn.
- De configuratie wordt opgeslagen in /etc/backuppc/archivaris.pl
- De aangemaakte hostmap voor archivaris is : /store/backup/backuppc/pc/archivaris, chown backuppc:backuppc en chmod 750
- Maak bestemmingsmap /vault/backuppc, chown backuppc:root en chmod 750
Test de instellingen van de nieuw geconfigureerde host en selecteer in archivaris Home : 'Start Archive'.
Selecteer van de nu gepresenteerde lijst één of meerdere host(s) om een archief van te maken.
Deze laatste noodzakelijke actie is ook de reden dat een schedule geen zin heeft voor het maken van archieven. De CGI biedt hiertoe geen mogelijkheden.
archiveHost schedulen met script en cron
Het maken van een archief (als tarball) van een recente met BackupPC gemaakte backup kan ook met een shell commando.
Het te geven commando is:
# BackupPC_archiveStart archiveHost userName hosts...
Hierin is host 'archivaris' de archiveHost, userName de eigenaar van het verzoek: 'root' en hosts... één of meerdere BackupPC hostnamen waarvan een archief gemaakt moet worden.
Dit maakt een archief aan van de meest recente backup van elke gespecificeerde host.
Bovenstaand commando nemen we op in een zelf te maken script 'archiveer-host' dat middels een cron op gezette tijden uitgevoerd wordt
Klik hier voor het bekijken of downloaden van onderstaand script:
!/bin/bash #*************************************************************************************** #* ARCHIVEER-HOST Ben Makkink 19-07-2024 * #* Script om met BackkupPC een archief (tarball) te maken van een Host RSYNC Backup * #* Dit script bevat het on-line commando voor het schedulen met een CRON * #*************************************************************************************** # In BackupPC is een host 'archivaris' geconfigureerd. Deze host kan een archief # (tarball) aanmaken van de laatste backup van een andere (rsyncd/rsync) host. Van host # 'archivaris' is ArchiveDest gezet naar /vault/backuppc. # Deze map is chown backkuppc:root en chmod 750. # Het starten van een archivering kan in BackkupPC helaas niet gescheduled worden, maar # wel met een commandline in dit script en een cron. # # De commandline syntax is: # # BackupPC_archiveStart archiveHost userName hosts... # # Hierin is archiveHost 'archivaris' en userName de naam van de aanvrager: 'root' # Voor hosts... vullen we de gewenste te archiveren host in. # BackupPC draait niet in een shell, dus het is noodzakelijk dat de volledige 'paths' # gebruikt worden #*************************************************************************************** # arch_host=$1 del_host="/vault/backuppc/"$arch_host".*" # Bewaar alleen de laatste tarballs van elke $arch_host # Bewaar 3: tail -n +4 # Bewaar 2: tail -n +3 # Bewaar 1: tail -n +2 ls -t $del_host | tail -n +3 |xargs rm -f --; # Voer het archiverings-commando uit als BackupPC-user 'backuppc' sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_archiveStart archivaris root $arch_host; # Crons voor elke individuele host zullen dit script wekelijks uitvoeren met het # commando : archiveer-hostWaarbij de naam van de te archiveren host is
Schedule met CRON
De cron-taken zijn uitgesmeerd over
de hele week en in de nachturen om een goede server performance tijdens de piekuren te bevorderen. Zie de tabel Distributie Werkbelasting Serveronderhoud
0 3 * * 0 /usr/local/bin/archiveer-host server-www &> /dev/null | elke zondag 03:00 |
0 23 * * 0 /usr/local/bin/archiveer-host server-documenten &> /dev/null | elke zondag 23:00 |
30 23 * * 1 /usr/local/bin/archiveer-host ben-pc &> /dev/null | elke maandag 23:00 |
0 23 * * 2 /usr/local/bin/archiveer-host erica &> /dev/null | elke dinsdag 23:00 |
0 3 * * 3 /usr/local/bin/archiveer-host benovo &> /dev/null | elke woensdag 03:00 |
0 23 * * 4 /usr/local/bin/archiveer-host server-e-books &> /dev/null | elke donderdag 23:00 |
0 23 * * 5 /usr/local/bin/archiveer-host server &> /dev/null | elke vrijdag 23:00 |
0 23 * * 6 /usr/local/bin/archiveer-host server-muziek &> /dev/null | elke zaterdag 23:00 |
Hosts server-afbeeldingen en server-videos overslaan
- De backup van host 'Server-afbeeldingen' wordt hier niet gearchiveerd. Dezelfde afbeeldingen worden in Piwigo geladen en van Piwigo, compleet met de afbeeldingen en derivaten, wordt met het script 'backuppwg' dagelijks een backup gemaakt naar het fysiek gescheiden Logical Volume 'vault' in de map /vault/piwigo. Zie hiervoor Piwigo::Backup sectie Script Backuppwg-cron
- De backup van host 'Server-videos' wordt niet gearchiveerd vooral vanwege het grote volume. De videos zijn 'gratis' van het internet en er is geen man overboord als deze bij een harddisk crash verloren gaan.
Archief naar Externe Schijf
Tot nu toe staan alle backups en archieven op fysiek gescheiden schijven maar nog steeds op de zelfde machine.
Zie hiervoor Backup naar Raspberry Pi Backup-Server
Indien gewenst kan er een backup naar een externe USB-disk geschreven worden.
De procedure is geen hoogstandje en wordt aan de commandprompt uitgevoerd.
- Sluit USB-disk aan op de server. De drive wordt herkend, controleer dit en stel de device (/dev/) vast met # dmesg of # fdisk -l, bijvoorbeeld /dev/sdd
- Als de drive nog niet gepartitioneerd en geformatteerd is doe dit dan met commando # fdisk /dev/sdd en maak nwe partitie sdd1.
Formatteer deze partitie met commando # mkfs -t ext4 /dev/sdd1 - Maak een mountpoint: # mkdir /mnt/usb
- Mount sdd1: # mount -t ext4 /dev/sdd1 /mnt/usb
- Synchroniseer externe schijf met het archief /vault (exlude de opgeslagen pc-images en map backuppc in /vault:
# rsync -avzh --exclude pc-images --exclude backuppc --delete /vault /mnt/usb - Verwijder oude backuppc bestanden van externe schijf
# rm -rf /mnt/usb/vault/backuppc/*.tar.gz - Ga naar map /mnt/usb/vault/backuppc/
# cd /mnt/usb/vault/backuppc/ - Kopieer op de hand laatste goede tarballs uit /vault/backuppc naar de externe HDD
# cp -a /vault/backuppc/asrock.999.tar.gz .
# cp -a /vault/backuppc/ben-xps.999.tar.gz .
etc.
BackupPC migreren naar andere server
Voor het verhuizen van BackupPC naar een andere server zijn de volgende stappen te doen:
- Installeer en activeer BackupPC op de nieuwe server
- Kopieer al de configuratie bestanden /etc/BackupPC/* van oude pc naar /etc/backuppc op de nieuwe server
- Kopieer al de backupdata bestanden /var/lib/BackupPC/* (/store/backup/backuppc/* ) van oude naar nieuwe server.
Zie sectie Backup Opslag Locatie voor de actuele opslaglocatie (bind)
Backup naar Raspberry Pi Backup-Server
Alle voorgaande backups bevinden zich op één en dezelfde locatie. Het is veiliger als er ook kopiën op een andere off-line locatie bewaard worden. Hiervoor maakte ik gebruik van de toennog gratis TransIP online opslag STACK met een capaciteit van 1000 GB.
In 2024 heb ik een Backup-Server opgezet op een 'air-gapped' Raspberry Pi 4B met een externe USB-SSD van 4TB.
De Backup-Server staat normaal uit en start op vaste tijden aan en uit middels een Hue stopcontact met timer.
Als de Backup-Server gestart is, wordt middels een cron een backup gestart.
Als eerste wordt getracht vast te stellen dat de bron niet geransomd is.
Dan pas wordt de externe
USB-SSD gemount en d.m.v. rsync de mainswerver-backup gemaakt (opgehaald).
Zie voor details Exploring Linux RaspBerry Pi Backup-Server