Home

 

Server::Backup en Restore

Index 
1.  Backup
    Backup methoden
    Server layout en backup strategie
    Backup Flowchart
    Overzicht van backuptaken
    Distributie Werkbelasting Serveronderhoud
2.  Configuratie Backup
    Configuratie van de App
    Backup Frequentie
    Backup Opslag Locatie
3.  Operating System Backup
    Sysback Script
    Taak schedulen
    Gebruikersinstructies voor herstel met backups
    Herstel met backups en boot met rescue disk
    Grub Restore
4.  BackupPC: App
    Initiatie
    Backup Opslag Locatie
    Basis Configuratie Instellingen
5.  BackupPC: Serverdata backup
    Host 'server' configuratie
    Host 'server-afbeeldingen' configuratie
    Host 'server-documenten' configuratie
    Host 'server-muziek' configuratie
    Host 'server-video' configuratie
    Host 'server-www' configuratie
6.  BackupPC: Netwerk PC's backup
    HOSTS bestand voor 'lokaal DNS'
    WOL met BackupPC
    RSYNCD installeren en configureren op client-PC's
    GMail local backup
    BackupPC configuren voor backup van de client-PC's
    Host 'ben-xps' configuratie
    Host 'erica' configuratie
    Host 'ben-pc' configuratie
    Host 'benovo' configuratie
7.  Backupschema van een Host stopzetten.
8.  BackupPC: Backups Archiveren naar Safe
    archiveHost 'archivaris' Configureren
    archiveHost schedulen met script en cron
9.  Archief naar Externe Schijf
10.  BackupPC migreren naar andere server
11.  Backup naar Stack Cloud
    Twee-Factor Authenticatie voor STACK
    Installatie Procedure Webdav
    Fout: Geen verbinding met Stackstorage.com
    Optioneel inloggen met script
    Verhuis de davfs2 cache directory
    Bekende problemen met davfs2 in combinatie met Stack
    Grote video/film bestanden
    Herstel Timestamp uit de JPG EXIF
    Backupscripts voor de update naar Stack
    Stack-ben-xps
    Stack-erica
    Stack-benovo
    Stack-files
    Stack-www
    Stack-pwg
    Stack-wp
    CRON voor Stack backuptaken
    PIWIGO Restore vanuit Stack
    WORDPRESS Blog Restore vanuit Stack

Naar index

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:

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.

Naar index

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:

Ook het simpelweg kopiëren van belangrijke files is een vorm van back-up, die in bepaalde situaties effectief kan zijn.

Naar index

Server layout en backup strategie

Vanaf ClearOS 6 recommendeert ClearOS het centraliseren van gebruikersdata. Dit helpt niet alleen met opslagbeheer, maar vereenvoudigt ook backupbeheer.
Zie Server::Gebruikersdata Opslag voor de hiertoe aanbevolen structuur.

De schijfopslag op mijn ClearOS server is in lijn met de ClearOS aanbevelingen globaal verdeeld over 4 blokken:

  1. Volume Group 'main' met het Operating Systeem (OS)
  2. Volume Group 'datalive' met subsectie (LV) 'live' bevattend:
    -server administrator homedata en archieven
    -fileserver voor lokaal netwerk
    -webserver inclusief PiWiGo imagebeheer en presentatie
  3. Volume Group 'databck' met subsectie (LV) 'backup' bevattend:
    -backups (tarballs) van systeem-configuratie
    -progressieve backups (bestandsniveau) van bovenstaand data-live blok
    -progressieve backups (bestandsniveau) van netwerk PC's
  4. Volume Group 'safe' op fysiek gescheiden station(s) bevattend:
    -backup (tarball) van VG 'main' met het OS
    -backup (tarballs) van VG 'data' subsectie 'backup'
    -backup (bestandsniveau) PiWiGo programma, database en images

Strategie
1. Backups in Databck subsectie Backup
Deze backups worden dagelijks gemaakt en oudere versies van minstens een week blijven bewaard.
2. Backups in Safe subsectie Vault
De backups naar deze fysiek gescheiden schijf worden wekeleijks gemaakt en er worden enkele oudere versies bewaard.
Een uitzondering is de backup van PiWiGo die dagelijks gemaakt wordt. Dit is inclusief de MySQL piwigo databasedump. Om te voorkomen dat per ongeluk verwijderde afbeeldingen verdwijnen, worden alle bestanden bewaard. Het verwijderen van bestanden die niet (meer) in de bron voorkomen moet op de hand uitgevoerd worden en alleen als we absoluut zeker zijn dat de bron compleet en corrrect is. Zie Server::Utility Scripts sectie Optie 2: Piwigo backup

Naar index

Backup Flowchart

Zie voor een compleet overzicht van databronnen en backuplokaties de backup-flowchart

Onderstaande uitsnede van de flowchart toont de schijfstations ingedeeld volgens ClearOS recommendaties

Naar index

Overzicht van backuptaken

Het volledige pakket van backups en methodes zoals deze in onderstaande volgorde in detail besproken gaat worden:

  1. Configuratie Backup
    Opslag van alle OS configuratiedata voor een 'systeemherstel'
    Dagelijks naar Databck subsectie Backup
  2. Operating System Backup
    Sysback script voor opslag van het complete OS naar een fysiek gescheiden station
    Wekelijks naar Safe subsectie Vault
  3. BackupPC Serverdata
    ClearOS App geconfigureerd voor backup en restore van serverdata (live naar backup)
    Dagelijks naar Databck subsectie Backup
  4. BackupPC Netwerk PC's
    ClearOS App geconfigureerd voor backup en restore van client PC's op het lokale netwerk
    Dagelijks naar Databck subsectie Backup
  5. BackupPC Safe
    ClearOS App geconfigureerd voor backup van alle data naar fysiek gescheiden station
    Wekelijks naar Safe subsectie Vault.
    PiWiGo Datalive subsectie Live dagelijks naar Safe subsectie Vault

Naar index

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 testserver uitziet:

Naar index

Configuratie Backup

Met de Configuratie Backup App wordt een snapshot gemaakt van alle configuratie bestanden. Deze backups kunnen optioneel opgeslagen worden op een ander systeem.
Als een ClearOS systeem hersteld moet worden kan dit middels herinstallatie van het ClearOS systeem gevolgd door een restore van de configuratiesettings van de backup.

De Configuratie Backup App is onderdeel van het ClearOS core systeem en wordt standaard geïnstalleerd als onderdeel van Webconfig.
Zie voor php code https://github.com/clearos/app-configuration-backup in librairies configuration_backup.php

Menu: Webconfig>System>Backup>Configuration Backup and Restore

De opties spreken voor zich. Er is een button 'Backup Now' om zelf een backup te starten.
In de sectie 'Archives' kan gekozen worden een eerder gemaakte backup te downloaden voor opslag op een ander systeem.
Met de button 'Restore' starten we een restore van de configuratie met de desbetreffende backup. Ook kan hier gekozen worden een specifieke backup te verwijderen.
In de sectie 'Restore from Archive' openen we een op een ander systeem opgeslagen backup om te gebruiken voor de restore.

Naar index

Configuratie van de App

Alle settings zijn voorgeprogrammeerd en in wijzigen door de gebruiker is niet voorzien.

De backup/restore app slaat van alle geïnstalleerde Webconfig Apps de configuratie informatie op inclusief:

De lijst van de door Configuratie Backup geregistreerde apps is te vinden op /var/clearos/configuration_backup/installed_apps.txt
De configuratiebestanden waarvan een backup gemaakt moeten worden staan in het bestand /usr/clearos/apps/configuration_backup/deploy/backup.conf
Als er Apps van derden op het systeem geïnstalleerd zijn moeten de configuratiebestanden van deze apps handmatig toegevoegd worden in backup.conf

Voeg toe voor Awstats:

Naar index

Backup Frequentie

De Configuratie Backup App wordt dagelijk uitgevoerd middels een cron in: /etc/cron.d/app-configuration-backup
Hier kunnen we dus eventueel de frequentie van backups wijzigen

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

 50  3  *  *  * root /usr/clearos/apps/configuration_backup/deploy/backup-now >/dev/null 2>&1

Naar index

Backup Opslag Locatie

De backups van de afgelopen 10 dagen worden bewaard.
Het default opslag pad is: /var/clearos/configuration_backup/backup-testserver_lan-mm-dd-yyyy-hh-mm-ss.tgz
Ten behoeve van gecentraliseerde dataopslag wordt zoals uitgewerkt in de sectie Server::Gebruikersdata Opslag een bindmount toegepast en de backups staan daarom fysiek op:
/store/data0/backup/server1/configuration_backup/backup-testserver_lan-mm-dd-yyyy-hh-mm-ss.tgz

Naar index

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.

Naar index

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.

# 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 -cvzf $sysbackdir$datestamp"-sysback.tar.gz" / --exclude /vault --exclude /proc --exclude /sys 
 --exclude /home --exclude /store --exclude /var/www/html --exclude /var/lib/BackupPC
 --exclude /var/lib/system-mysql --exclude /var/lib/mysql --exclude /var/clearos/configuration_backup
 --exclude /run;

# 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'

Naar index

Taak schedulen

Het maken van de backup wordt wekelijks uitgevoerd door middel van een 'cron' (var/spool/cron/root) die het script aanroept.

 0 0 * * 0 /usr/local/bin/sysback &> /dev/null

Met deze cron draait het script elke dag om 00:00 uur.

Tevens kan de backup manueel gestart worden vanuit het script 'backup'. Zie hiervoor Server::Utility Scripts sectie Optie 1: Server OS backup

Naar index

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.

  1. De backups zijn opgeslagen in /vault/sysback
  2. 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

Naar index

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.

Voorbeeld van de te volgen procedure voor het herstel van de map /usr

  1. Start de machine met monitor en de installatiedisk ClearOS 7
  2. Selecteer Rescue en vervolgens het systeem laten proberen de systeemimage op /mnt/sysimage te laten zetten
  3. # mkdir /mnt/bron
    # mount -t ext4 /dev/mapper/safe-vault /mnt/bron
  4. # mkdir /mnt/doel
    # mount -t ext4 /dev/mapper/main-root /mnt/doel
  5. # cd /mnt/doel (is de feitelijke root van het systeem)
  6. # tar -xzvf /mnt/bron/vault/20161099-sysback.tar.gz usr

Hiermee is /usr teruggezet met de backup

Naar index

Grub Restore

De tarball 20151025-sysback.tar.gz bevat de rootbestanden en de kernel.
Na een restore met dit bestand zal ClearOS 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-DVD of -USB.

Selecteer nu de 'rescue' optie en voor de volgende commando's uit:
# sudo su
# mkdir /mnt/test
# mount -t ext4 -o /dev/sda1 /mnt/test
# cd /dev/sda1
# grub -install /dev/sda1
# exit
# umount /mnt/test
# rmdir /mnt/test
# reboot (zonder bootmedium)

Naar index

BackupPC: App Installatie

BackupPC is een module voor ClearOS 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 ClearOS App en wordt geïnstalleerd via Marketplace.

NOTE: Het BackupPC programma is beschikbaar in de 'clearos-epel' repositorie. Zorg dat deze repository in Webconfig > Cloud > Updates > Software Repository enabled is.

Naar index

Initiatie

Na de installatie is de App te vinden in Webconfig > Server > Backup > BackupPC
De BackupPC service moet ten eerste gestart worden. Klik hiervoor Start in de informatiesectie aan de rechterkant.
Voer nu een wachtwoord in voor de gebruiker 'backuppc'

 

Klik nu 'Go to BackupPC Management Tool' om in de browser het BackupPC administratie tool te openen.

Naar index

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.

Naar index

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:

  1. Open de BackupPC Administratie Console met de url: https://homeserver:81/backuppc
  2. Selecteer tab CGI en zet CgiDateFormatMMDD naar '0' en save.
    Hiermee zetten we het datumformaat van US naar International
  3. Selecteer tab Email en zet EmailUserDestDomain naar 'makkink.eu'
  4. Selecteer tab Schedule en wijzig BlackoutPeriods > weekDays naar '0, 1, 2, 3, 4, 5, 6' (alle dagen) en save
  5. Selecteer tab XFER en zet XferMethod > 'rsyncd' en RsyncdUserName > 'backuprsyncd' en RsyncdPasswd > wachtwoord als ingevoerd in rsyncd.secrets
  6. Selecteer tab Server en zet pingPath > '/bin/ping'
  7. selecteer tab Backup Settings en verwijder alle entries uit: NmbLookupCmd en NmbLookupFindHostCmd. Zet PingCmd > '/usr/local/bin/wolping -c1 -w3 $host'.
    Zie ook Permissies /bin/ping voor BackupPC en 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.

Permissies /bin/ping voor BackupPC
Om met Windows machines te verbinden voor backup wordt in de rsyncd methode als eerste een ping verstuurd naar de Windows machine om te verifiëren dat deze beschikbaar is. In ClearOS 7.2.0 krijgt BackupPC geen toegang tot het commando /bin/ping met de permisssies -rwxr-xr-x.
In de oudere versies van ClearOS waarbij BackupPC wel werkte waren de permissies -rwsr-xr-x. De s-bit staat toe dat iedere persoon of proces die /bin/ping aanroept toegang krijgt tot de systeembronnen alsof ze de eigenaar van /bin/ping zijn.
Corrigeer de permissies van /bin/ping in ClearOS 7.2.0 met commando: chmod u=rwxs /bin/ping

Naar index

BackupPC: Serverdata backup

De server (local host) 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.
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.

Schedule voor de individuele Hosts
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
Beperkt volume, nauwelijks activiteit
ben-xps Full: 1x /week, bewaar 4
Incr.: 1x /dag, bewaar 6
Behoorlijk volume, veel activiteit, veel experimenten, met gevaar van late ontdekking
erica Full: 1x /week, bewaar 2
Incr.: 1x /dag, bewaar 6
Behoorlijk volume, weinig activiteit
benovo Full: 1x /week, bewaar 2
Incr.: 1x /dag, bewaar 6
Beperkt 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 /maand, bewaar 1
Incr.: 1x /dag, bewaar 27
Behoorlijk volume, veel activiteit, veel experimenten, met gevaar van late ontdekking

Virtual Host
BackupPC is een ClearOS module 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.

Naar index

Host 'server' configuratie

  1. 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
  2. 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.
  3. 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 RsyncClientCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - Vink override van RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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
  5. De backup van host 'server' wordt opgeslagen op /store/backup/backuppc/pc/server

Naar index

Host 'server-afbeeldingen' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

  1. Host: 'server-afbeeldingen'
  2. 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.
  3. Per-PC config XFer. Laat XferMethod als het is: 'rsync'
    - RsyncShareName override en zet entry naar: /store/live/home/files/afbeeldingen
    - BackupFilesExclude geen override
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-afbeeldingen' wordt opgeslagen op /store/backup/backuppc/pc/server-afbeeldingen

Naar index

Host 'server-documenten' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

  1. Host: 'server-documenten'
  2. 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.
  3. Per-PC config XFer. Laat XferMethod als het is: 'rsync'
    - RsyncShareName override en zet entry naar: /store/live/home/files/documenten
    - BackupFilesExclude override en zet entry: * en /Mirror-bens-pc
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-documenten' wordt opgeslagen op /store/backup/backuppc/pc/server-documenten

Naar index

Host 'server-e-books' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

  1. Host: 'server-e-books'
  2. 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.
  3. 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
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-e-books' wordt opgeslagen op /store/backup/backuppc/pc/server-e-books

Naar index

Host 'server-muziek' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

  1. Host: 'server-muziek'
  2. 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.
  3. Per-PC config XFer. Laat XferMethod als het is: 'rsync'
    - RsyncShareName override en zet entry naar: /store/live/home/files/muziek
    - BackupFilesExclude geen override
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-muziek' wordt opgeslagen op /store/backup/backuppc/pc/server-muziek

Naar index

Host 'server-video' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

  1. Host: 'server-video'
  2. 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.
  3. Per-PC config XFer. Laat XferMethod als het is: 'rsync'
    - RsyncShareName override en zet entry naar: /store/live/home/files/video
    - BackupFilesExclude geen override
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-video' wordt opgeslagen op /store/backup/backuppc/pc/server-video

Naar index

Host 'server-www' configuratie

Volg de procedure als omschreven in Host 'server' configuratie.

Note: Exclude PiWiGo met alle images!

  1. Host: 'server-www'
  2. 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.
  3. 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
    - RsyncClientCmd override en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
    - RsyncClientRestoreCmd en zet entry naar: /usr/bin/sudo $rsyncPath $argList+
  4. 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.
  5. De backup van host 'server-www' wordt opgeslagen op /store/backup/backuppc/pc/server-www

Naar index

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:

  1. 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).
  2. WOL met BackupPC (optioneel). Middels een zelf te schrijven script kan BackupPC een client-PC in slaapstand proberen te wekken voor een backup.
  3. 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.
  4. GMail-backup. Wekelijks wordt op de Windows PC's Outlook gestart om de webmail accounts te synchroniseren en lokaal op te slaan.

Naar index

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 testserver 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  mainserver.lan mainserver
192.168.178.5  homeserver.lan homeserver
192.168.178.2 ben-pc
192.168.178.10 ben-xps
192.168.178.15 benovo
192.168.178.14 erica

Naar index

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. Zie ook https://www.dell.com/support/kbdoc/en-us/000175283/how-to-setup-wake-on-lan-wol-on-your-dell-system?lang=nl

  1. 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.
  2. Zoek vervolgens in de BIOS naar Power Options en disable DeepSleep Control S4 en S5
  3. 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!
  4. 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)

Naar index

ETHER-WAKE
De ClearOS 7 distributie is voorzien van het ether-wake 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 ether-wake 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.
Gebruik het commando # arp om een lijst te krijgen van alle machines op het lokale netwerk met de bijbehorende MAC adressen.
Als voorbeeld het /etc/ethers bestand op de mainserver:

18:03:73:3f:21:21 ben-xps
CC:96:E5:4A:F3:02 ben-pc
# This is an auto-generated file. Please do NOT edit
# Comments are used to aid in maintaining your hosts
# file

Op 21-01-2024 is in plaats van de hosts 'ben-xps' nu 'ben-pc' verbonden met een kabel

Om bijv. de host 'ben-pc' te wekken volstaat nu het commando: # ether-wake ben-pc

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/ether-wake 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/ether-wake

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 ether-wake ben-pc

Naar index

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-xps' wijzigen we deze entry voor 'PingCmd' in: /usr/local/bin/wolping -c1 -w3 $host
I
n plaats van het gewone ping programma wordt nu het, zelf aan te maken, script 'wolping' uitgevoerd.
Het 'wolping' script 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 Ben Makkink 21-10-2015                                      *
# ***********************************************************************
# * 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                            *
# * Ether-wake werkt met het MAC address, zorg dus dat PC naam en de    *
# * bijbehorende MAC-address vermeld zijn in /etc/ethers                *
# ***********************************************************************

PING=/bin/ping

ARG1=$1     # -c1
ARG2=$2     # -w3
WAKEHOST=$3 # $host

ETHWAKE='/usr/bin/sudo /sbin/ether-wake'
SLEEPTIME=20s

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 'asrock' wekken met het commando # wolping -c1 -w3 ben-pc

Naar index

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

  1. Download de RSYNCD installer van de Sourceforge BackupPC projectpagina naar de Windows PC. Selecteer de laatste versie cygwin-rsyncd..._installer.exe.
  2. Dubbelklik op cygwin-rsyncd-x.x.x.x_installer.exe en de deamon wordt geïnstalleerd in map c:\rsyncd
  3. 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.
  4. Maak in c:\rsyncd een batchbestand genaamd 'backuppc-win10-firewall-mainserver.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.1.4,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 mainserver op 192.168.1.4
    Installeer de firewall rules voor rsyncd door het bestand als ADMINISTRATOR eenmalig uit te voeren.
  5. 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

[Dropbox]
    path = /cygdrive/c/Users/Ben/Dropbox
    comment = Dropbox
    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.1.5, 192.168.1.4
    read only = true
    list = false

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.1.2::Drivers /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

Naar index

GMail local backup

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

  1. Download (https://www.thunderbird.net/nl/) en installeer Thunderbird (niet als standaard e-mail toepassing)
  2. 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.
  3. 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

  1. Geef Thunderbird-menu weer (drie streepjes rechts in scherm):
  2. Selecteer Add-ons > Extensies. Verifieer dat al geïntegreerde add-on ‘Lightning’ ingeschakeld is.
  3. Selecteer in Add-ons > Extensies het zoekvak en type: ‘Provider for Google Calendar’, selecteer en installeer ‘Provider for Google Calendar’
  4. 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.
  5. 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.
  6. Kies de agenda’s die u in Thunderbird wilt gebruiken. In ieder geval ‘ben@makkink.eu’
  7. Klik op Volgende. Er is een bevestiging dat de agenda is aangemaakt. Klik op Voltooien en klik op ‘synchroniseren’.

Contacten Synchronisatie

  1. Geef Thunderbird-menu weer (drie streepjes rechts in scherm):
  2. Selecteer Add-ons > Extensies en selecteer zoekvak en type: ‘gContactSync’
    Selecteer en installeer ‘gContactSync’.
  3. Na herstart van Thunderbird:
    * Volg Wizard, selecteer bestaande account ‘ben@makkink.eu’ en log in
    * Selecteer all contacts and groups
    * Selecteer Read-only en verwijder vink bij skip contact without e-mail
    * Klik voltooien
  4. Klik in ‘Postvak IN op tab ‘Adresboek’ voor 1e synchronisatie van ‘ben@makkink.eu’

Instellingen:
Ga naar Thunderbird Menu (3 streepjes) > Opties > Account instellingen. Ga door alle tabs en verwijder vinkjes voor opties zoals meldingen en andere zaken die voor onze backup functie niet zinnig zijn.
Ga naar Thunderbird Menu (3 streepjes) > Opties> Opties> 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.

Open Adresboek en selecteer: Extra > Opties. Ga door alle tabs en verwijder ook hier alle zinloze functie zoals geluiden en meldingen.

Open Adresboek en selecteer: gContactSync > Preferences. Wijzig in tab Main de ‘Initial sync delay’ naar 1. Rest ongewijzigd.

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

C:\Program Files (x86)\Thunderbird-Backup\Thunderbird-Backup.bat
@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.

Naar index

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'.

Naar index

Host 'ben-pc' configuratie

  1. 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
  2. Selecteer Per-PC config: Hosts > 'ben-xps' 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
  3. Edit XFer.
    - Zet XferMethod: 'rsyncd'
    - Vink override aan van RsyncShareName en zet entries naar: Data, AppData, Drivers en Images Zijnde de RSYNCD shares van de host
    - 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
  4. 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.
  5. De backup van host 'ben-pc' wordt opgeslagen op /store/backup/backuppc/pc/ben-pc

Naar index

Host 'erica' configuratie

  1. 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
  2. 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
    - Save
  3. 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
  4. 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.
  5. De backup van host 'erica' wordt opgeslagen op /store/backup/backuppc/pc/erica

Naar index

Host 'tablet' configuratie

Niet meer in gebruik. Alleen als voorbeeld

  1. 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
  2. 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
  3. XFer Settings: 'tablet' heeft dezelfde shares als 'ben-pc''. Bij BackupFilesExclude voegen we toe AppData/NVIDIA
  4. 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.
  5. De backup van host 'tablet' wordt opgeslagen op /store/backup/backuppc/pc/tablet

Naar index

Host 'benovo' configuratie

  1. 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
  2. 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
  3. 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 .
  4. 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.
  5. De backup van host 'benovo' wordt opgeslagen op /store/backup/backuppc/pc/benovo

Naar index

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.

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.

Onderstaande Backups Archiveren naar Safe worden niet gescheduled in BackupPC maar d.m.v. een cron.
Zo'n taak stoppen wordt gedaan door het verwijderen van de cron.

Naar index

BackupPC: Backups Archiveren naar Safe

Alle hiervoor behandelde backups werden opgeslagen op de zelfde fysieke schijf als de 'live' data. Als deze schijf crasht dan zijn we alsnog alles kwijt.
Daarom is een extra harde schijf bijgezet Zie ook de Flowchart Deze schijf 'sdd' is toegevoegd aan de Volume Group 'Safe' met Logical Volume '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

  1. Selecteer 'Main Configuration Editor' > 'Edit Hosts' > Add
    - Voeg bij Hosts een nieuwe host toe: 'archivaris' en Save
  2. 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
  3. 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!)
    - Save
  4. De rest van de defaultinstellingen van host 'archivaris' kunnen gelaten worden voor wat ze zijn.
  5. Maak hostmap voor archivaris: /store/backup/backuppc/pc/archivaris, chown backuppc:backuppc en chmod 750
  6. 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.

Naar index

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:

archiveer-host
#!/bin/bash
#***************************************************************************************
#* ARCHIVEER-HOST  Ben Makkink 05-03-2016                                              *
#* 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

# Voer het archiverings-commando uit als BackupPC-user 'backuppc'
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_archiveStart archivaris root $arch_host;

# Oude tarballs, behalve van de laatste 4 weken worden verwijderd.
find /vault/backuppc/ -maxdepth 1 -mtime +30 -name $arch_host".*" -exec rm {} \;;

# Crons voor elke individuele host zullen dit script wekelijks uitvoeren met het
# commando : archiveer-host <host> Waarbij <host> 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
0 23 * * 1 /usr/local/bin/archiveer-host ben-xps &> /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 * * 3 /usr/local/bin/archiveer-host server-e-books &> /dev/null elke woensdag 23:00
0 23 * * 4 /usr/local/bin/archiveer-host asrock &> /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

  1. 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 Server::Utility Scripts sectie Piwigo dagelijkse backup met cron
  2. 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.

Naar index

Archief naar Externe Schijf

Tot nu toe staan alle backups en archieven op fysiek gescheiden schijven maar nog steeds op de zelfde machine.
Als laatste stap worden tweemaal per jaar naar een externe USB-disk geschreven. De procedure is geen hoogstandje en wordt aan de commandprompt uitgevoerd.

  1. 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
  2. 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
  3. Maak een mountpoint: # mkdir /mnt/usb
  4. Mount sdd1: # mount -t ext4 /dev/sdd1 /mnt/usb
  5. 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
  6. Verwijder oude backuppc bestanden van externe schijf
    # rm -rf /mnt/usb/vault/backuppc/*.tar.gz
  7. Ga naar map /mnt/usb/vault/backuppc/
    # cd /mnt/usb/vault/backuppc/
  8. 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.

Naar index

BackupPC migreren naar andere server

Voor het verhuizen van BackupPC naar een andere server zijn de volgende stappen te doen:

  1. Installeer en activeer BackupPC op de nieuwe server
  2. Kopieer al de configuratie bestanden /etc/BackupPC/* van oude naar nieuwe server
  3. Kopieer al de backupdata bestanden /var/lib/BackupPC/* van oude naar nieuwe server.
    Zie sectie Backup Opslag Locatie voor de actuele opslaglocatie (bind)

Naar index

Backup naar Stack Cloud

Alle voorgaande backups bevinden zich op één en dezelfde locatie. Het is veiliger als er ook kopiën op een andere locatie bewaard worden. Hiervoor maak ik gebruik van de gratis TransIP online opslag STACK met een capaciteit van 1000 GB.
Omdat STACK ondersteuning biedt voor WebDAV, kun je deze storage ook als externe opslag 'mounten' om te gebruiken voor het maken van back-ups van de data op je server.

WebDAV is een protocol op het internet dat een uitbreiding is van het protocol HTTP. De afkorting staat voor Web-based Distributed Authoring and Versioning, wat vrij vertaald neerkomt op webgebaseerd en verdeeld auteurschap met versiebeheer. Distributed authoring verwijst naar user-generated content.
De bedoeling van het WebDAV-protocol is ervoor te zorgen dat het wereldwijde web een leesbaar en schrijfbaar medium wordt. Daarom voorziet het in de mogelijkheid om op afstand documenten aan te maken, te veranderen en te verplaatsen op een server (meestal een webserver). Hierdoor kunnen documenten op een website bijgewerkt worden, maar bestanden kunnen ook bewaard worden via het web, en ze kunnen daarna weer geopend worden.

In ons geval bewerkstelligen we dat de online opslag STACK op de server gemount wordt en gebruikt kan worden als ware het lokale opslag.

Naar index

Twee-Factor Authenticatie voor STACK
We maken gebruik van de twee-Factor Authentication (2FA) voor STACK. 2FA houdt in dat je naast je wachtwoord een extra code moet invullen, voordat je toegang krijgt tot jouw STACK. Deze code is alleen in te zien via een 2FA-app voor je smartphone (zoals LastPass Authenticator).
Dit betekent dat, mochten je inloggegevens van jouw STACK onverhoopt in de verkeerde handen vallen, er niet ingelogd kan worden. Zij hebben namelijk geen toegang tot de unieke code die jij op je 2FA-app hebt ingesteld. Deze codes zijn ook nog eens maar 30 seconden geldig, waardoor het zo goed als onmogelijk is om achter deze eenmalige codes te komen.

Two-factor authentication voor STACK inschakelen
De hierna volgende stappen zijn beschrevenn op de site van TRANS-IP

  1. Om 2FA voor STACK in te schakelen, log je eerst in op de webinterface. Klik hierbinnen rechtsboven op je gebruikersnaam en daarna links op 'Instellingen'.
  2. Onder het kopje ' Toegang tot jouw STACK' zie je nu 'Two-factor authentication' staan. Klik hieronder op 'Inschakelen'.
  3. Om 2FA in te schakelen moet je het wachtwoord van jouw STACK opnieuw invoeren.
    In een drietal stappen schakel je nu 2FA voor STACK in.
    Hiervoor is het van belang dat je een 2FA-app bijv. LastPass Authenticator op je smartphone installeert. In de app open je de QR-code scanner, welke je gebruikt om de unieke QR-code binnen de webinterface te scannen. Binnen de app wordt er vervolgens een gebruiker aangemaakt met hierbij een unieke code. Zodra jouw unieke code zichtbaar is in je 2FA-app, voer je deze in en klik je op 'Bevestigen'.
  4. Je ziet nu een pop-up venster met hierin tien two-factor recovery-tokens. Mocht je 2FA-app niet bereikbaar zijn, dan kun je één van deze tokens gebruiken in plaats van het wachtwoord om alsnog toegang tot je STACK te krijgen. Sla deze tokens op in bijv. LastPass.

Netwerkschijfverbinding via WebDAV
Zie hiervoor ook de TRANS-IP site

  1. Nu 2FA actief is, kan alleen een netwerkschijfverbinding via WebDAV gemaakt worden met een speciaal token.
    Je voert bij het maken van de netwerkschijfverbinding dus niet je STACK-wachtwoord in en ook niet de unieke code die door je 2FA-app wordt gegenereerd, het WebDAV-protocol ondersteunt namelijk geen 2FA. In plaats daarvan voer je een speciaal token in die je in de Stack webinterface aanmaakt.
    Klik in de webinterface rechtsboven op je gebruikersnaam en daarna links op 'Instellingen'.
    Onder het kopje 'Toegang tot jouw STACK' zie je 'Toegangstokens' staan. Klik hieronder op 'Beheren' en vul het wachtwoord van jouw STACK opnieuw in.
  2. Klik nu op '+ Nieuw token'. Geef het token een label en kies onder 'Type' voor WebDAV.
    Klik hierna op 'Opslaan' en in een popup wordt het token voor WebDAV weergegeven.
  3. Voer dit token in in plaats van het wachtwoord in het Linuxbestand /etc/davfs2/secrets zoals in onderstaande sectie onder item 4 beschreven

 

Naar index

Installatie Procedure Webdav:
Zie ook: STACK als externe back-up voor je VPS gebruiken

  1. Allereerst heb je 'davfs2' nodig op je VPS. Mocht je davfs2 nog niet geïnstalleerd hebben dan voer je het volgende commando uit:

    # yum install davfs2
    (davfs2 is beschikbaar in de Clearos-epel repository en yum installeert tevens de dependencies: libmodman, libproxy.neon en pakchois).

  2. Voeg jezelf (root) toe aan de groep 'davfs2'

    # usermod -aG davfs2 root

    Verifieer: # groups root

    Note: Om later bijvoorbeeld root uit de groep te verwijderen # gpasswd -d root davfs2

  3. Maak een mountpoint aan voor STACK

    # mkdir /home/stack

    Op mijn server is de gebruiker 'root' en we maken daarom gebruik van de globale configuratie van davfs2.
    We maken dus niet, zoals in de TransIP instructie gebruik van een verborgen gebruikersmap ~/.davfs2 (zie hiervoor ook https://unix.stackexchange.com)

  4. Automatisch inloggen met davfs2/secrets.
    Edit het bestand /etc/davfs2/secrets. Hier voeg je ergens in het bestand de URL van je WebDAV toe en de gebruikersnaam en het wachtwoord of token van je STACK account:

    https://<gebruikersnaam>.stackstorage.com/remote.php/webdav/ <gebruikersnaam> <wachtwoord>

    of bij Two-factor authentication

    https://<gebruikersnaam>.stackstorage.com/remote.php/webdav/ <gebruikersnaam> <token>

  5. Plaats regel voor de mount in fstab
    Edit het bestand /etc/fstab en voeg de volgende regel toe:

    https://<gebruikersnaam>.stackstorage.com/remote.php/webdav/ /home/stack davfs user,rw,noauto 0 0

    Voer # mount -a uit of reboot

    Note: We gebruiken de optie 'noauto' om te voorkomen dat STACK altijd gemount zou zijn. Dit willen we alleen als we een backup willen maken of data terug willen zetten.

  6. Mount STACK met het commando:

    # mount /home/stack

    De toegevoegde regel in davfs2/secrets verstrekt nu de gebruikersnaam en het bijbehorende wachtwoord en dan is je STACK als extra partitie gemount.

    Nu kun je bijvoorbeeld met behulp van het commando 'rsync' lokale data van je server kunnen back-uppen op je STACK.
    Een simpel voorbeeld van een dergelijk commando is onderstaand:
    # rsync -ruv --inplace /home/pwgdata /home/stack/
Naar index

Fout: Geen verbinding met Stackstorage.com
Als er na het commando # mount /home/stack geen internet verbinding tot stand gebracht kan worden met Stackstorage.com zal er een time-out optreden en wordt de mount alsnog gemaakt, maar zonder verbinding met STACK.
Alle bestanden die vervolgens met het rsync commando naar /home/stack gestuurd worden belanden dan op de server zelf in de fysieke map /home/stack waardoor de server in no-time vol zal lopen en er geen backup in de cloud gemaakt wordt.

In het backupscript maken we daarom een controle, waardoor de backup niet uitgevoerd wordt als er geen internetverbinding met Stackstorage.com gemaakt kan worden.
Zie als voorbeeld sectie Stack-ben-xps voor de inpassing in het volledige backupscript.
 

NOW=$(date +"%d/%m/%Y %T")
ping -q -w3 -c1 transvaal.stackstorage.com
if [ "$?" != 0 ]; then echo "Backup van BEN-XPS naar STACK op "$NOW" werd niet uitgevoerd."\ >> /usr/local/stack-aborted
exit;
fi

Het is nu zaak dat er een bericht gestuurd wordt dat de geplande backup niet is uitgevoerd. Maar de kans is groot dat de backup niet doorging vanwege een storing in eigen netwerk of uitval van het internet. Een bericht van de server zal de beheerder dan ook niet bereiken.
Om toch een bericht achter te kunnen laten wordt daarom een tijdelijk bovenstaand vlagbestand /usr/local/stack-aborted aangemaakt, die bij de eerstvolgende succesvolle backup weer verwijderd wordt.

Vervolgens wordt dagelijks middels een cron het script 'stackerror' uitgevoerd (Zie hier volledig script). In dit script wordt allereerst gecheckt of er nu wel een internet verbinding is. Vervolgens wordt gezocht naar het vlagbestand /usr/local/stack-aborted en als deze gevonden wordt, wordt met de inhoud van het vlagbestand en de template /usr/local/bin/stackerror.txt een e-mail opgesteld met instructies voor het alsnog op de hand uitvoeren van de mislukte backup en deze wordt verzonden naar de beheerder (Zie hier inhoud van de e-mail template).

Naar index

Optioneel automatisch inloggen met script
De toegevoegde regel in /etc/davfs2/secrets (punt 4) verstrekt de gebruikersnaam en wachtwoord. Als we deze regel niet toevoegen zal het commando # mount /home/stack resulteren in het vragen naar gebruikersnaam en wachtwoord van je STACK account.
Als we om welke reden dan ook niet van het 'secrets' bestand willen of kunnen gebruiken kunnen we dit oplossen door gebruik te maken van het commando 'expect' in een script.

Installeer om te beginnen 'expect':
# yum install expect

Maak nu een script en noem die bijvoorbeeld '.stackmount' (chmod 544) met de inhoud:

#!/usr/bin/expect -f
  spawn mount -o username=<gebruikersnaam> /home/stack;
  expect "Password: ";
  send "<wachtwoord>\r";
  expect "$ ";

Met dit script mounten we /home/stack en met 'expect' en 'send'voeren we het benodigde wachtwoord in.

Naar index

Verhuis de davfs2 cache directory

Met de installatie van davfs2 wordt per default een cache folder aangemaakt in /var/cache/davfs2.
Bij het kopieren en/of synchroniseren van data tussen de server en de gemounte cloud Stack worden de bestanden eerst naar het cachebestand geschreven. Als we veel en/of grote bestanden hebben loopt /var hier bijna onmiddelijk vol (op mijn homeserver is voor /var 10 Gb gereserveerd).

Het is beter een drive te selecteren met voldoende ruimte voor deze tijdelijke cache, bijvoorbeeld /home.
# mkdir /home/davfs2
# chgrp davfs2:davfs2 /home/davfs2

Edit davfs2 configuratie bestand /etc/davfs2/davfs2.conf
Zoek de regel 'cache_dir' en wijzig /var/cache/davfs2 naar /home/davfs2

Naar index

Bekende problemen met davfs2 in combinatie met Stack

Stack laat niet toe dat de bestandsattributen in de cloud geschreven worden. Naar de cache gaat het goed en blijven de attributen behouden en ook in de cloud lijkt het in orde. Maar zodra de transfer compleet is en de cache dus leeg en we hierna unmounten dan zijn de oorspronkelijke attributen verloren. Bijvoorbeeld de oorspronkelijke aanmaaktijd vaneen bestand is nu gewijzigd naar de modificatietijd dus in dit geval de timestamp van de upload. Ook de permissies zijn gewijzigd naar 644 en user root.

RSYNC:
rsync -a heeft dus geen zin en resulteert zelfs in foutmeldingen omdat STACK niet toelaat dat de attributen in de cloud door davfs2 geupdated worden.
Ook rsync -t (preserve time) werkt niet.
Gebruik rsync -u (update). Hiermee slaan we de bestanden over waarvan al een gelijke of nieuwere versie in de cloud staat. Voeg -r toe om recursive te werken en -v voor verbose.
Per default checkt rsync de timestamp en de bestandsgrootte om vast te stellen of er een synchronisatie (update) uitgevoerd moet worden.
Met deze backup of synchronisatie met rsync (of ook bij cp) gaan dus de aanmaak-timestamps verloren. Bij JPG betsanden is deze nog weer terug te halen uit de EXIF

Grote video/film bestanden
Bestanden groter dan 1 Gigabite leveren met davfs2 problemen op en blijven hangen. Dus deze methode is minder geschikt voor de transfer van video en film.
Om een backup te maken van de /home/files/video folder op mijn homeserver kan ik davfs2 niet gebruiken en moet het handmatig uitgevoerd worden op de TRANSIP STACK webpagina.

Naar index

Herstel Timestamp uit de JPG EXIF

Als we afbeeldingen, opgeslagen in de STACK cloud, gebruiken voor een restore dan plaatsen we deze op de server in /home/afbeeldingen of /home/pwgdata/galleries.
Om de verlorengegane timestamp van de aanmaakdatum te herstellen gebruiken we 'jhead' en de aanmaakdatum opgeslagen in de EXIF data. Zie hiervoor ook Stackexchange

# cd <directory met de images>
# jhead -ft *.JPG

of recursive en voor zowel JPG, jpg, JPEG en jpeg

# cd <directory met de images>
# find -iname '*.jp*g' -exec jhead -ft {} +

Naar index

Backupscripts voor de update naar Stack

Middels scripts maken we van de verschillende onderdelen op onze server backups en/of synchronisaties. Voor deze scripts maken we cron-opdrachten en een menu om handmatig aanvullende backups te kunnen maken of overtollige (oude) data te verwijderen met synchronisaties.

Voor de verschillende onderdelen maken we onderstaande backupscripts:
   
1. stack-ben-xps   Van de PC 'ben-xps' de partitie 'Data'
2. stack-erica   Van de PC 'erica' de partitie 'Data'
3. stack-benovo   Van de PC 'benovo' de partitie 'Data'
4. stack-files   De fileserver shares: /home/files/documenten, /home/files/muziek en /home/files/e-books
5. stack-www   De webserver bestanden: /var/www/html behalve Piwigo en Wordpress Blog
6. stack-pwg   Piwigo fotogalerij webprogramma en data
7. stack-wp   Wordpress Blog webprogramma en data

In elk script wordt de STACK cloud gemount op /home/stack en vervolgens rsync uitgevoerd voor een backup of synchronisatie. Afsluitend wordt de mount weer verwijderd.
Als laatste wordt een menuscript 'stackbackup' gemaakt om de diverse scripts handmatig uit te kunnen voeren.

BackupPC formaat
Van de PC's maakt de server backups met het programma BackupPC. Dit backupformaat is niet zinvol om te gebruiken voor een restore uit de STACK cloud omdat we dan eerst een werkende linuxserver met BackupPC moeten hebben om de restoredata uit te kunnen lezen. Wekelijks wordt echter met BackupPC een archief gemaakt van alle BackupPC backups.
Voor de backup naar de cloud gebruiken we deze archieven, pakken ze uit en transferren we alleen de gebruikersdata naar de cloud.

Naar index

Stack-ben-xps

Zie hier het volledige script.
Hieronder de relevante regels:

Alleen uitvoeren als er communicatie mogelijk is met Stackstorage.com
Zonder verbinding zal de benodigde mount van Stackstorage mislukken. Zet vlagbestand en quit script.

NOW=$(date +"%d/%m/%Y %T")
ping -q -w3 -c1 transvaal.stackstorage.com
if [ "$?" != 0 ]; then
  echo "Backup van BEN-XPS naar STACK op "$NOW" werd niet uitgevoerd."\
                                            >> /usr/local/stack-aborted
  exit;
fi

Switch Backup of Synchronisatie
Het commando stack-ben-xps zal resulteren in een Backup en stack-ben-xps sync in een synchronisatie. Zie blok hieronder: RSYNC Backup of Synchroniseer.

SYNC=;
if [ "$1" == "sync" ] ; then
 SYNC=--delete;
fi

Unmount /home/stack
Verifieer dat /home/stack om wat voor reden dan ook nog gemount is en unmount deze
if mountpoint -q /home/stack; then
umount /home/stack;
fi

Delete /vault/tmp
Maak zeker dat de tijdelijke folder met verouderde bestanden niet meer bestaat
if [ -d /vault/tmp ];
then
 rm -rf /vault/tmp;
fi

Wis cache
Verwijder het davfs2 cache bestand (van een vorige actie)
# Wis het davfs2 cache bestand (van een vorige actie)
# --------------------------------------------------
rm -rf /home/davfs2/*;
echo "cache is deleted";

Maak tijdelijke folder aan
Voor het uitpakken van het backuppc archief van de PC ben-xps
mkdir /vault/tmp;

Haal laatste archief
We kunnen de reguliere backup van ben-xps niet gebruiken omdat die in een formaat voor het programma BackupPc opgeslagen wordt. Om een restore met deze data te doen hebben we een server nodig met daarop het BackupPc programma.
We gebruiken daarom voor de cloud backup de archief backup van BackupPc in /vault.

Haal bestandsnaamnaam en pad van het laatste backuppc archief (tarball) van de PC ben-xps
FILE=$(ls -t /vault/backuppc/ben-xps* | head -n 1);
echo $FILE " is geselecteerd voor uitgepakken in tijdelijk bestand.";

Pak geselecteerde archief uit
Pak van het archief alleen de folder /Data uit in de tijdelijke folder /vault/tmp
tar -xvzf $FILE -C /vault/tmp ./Data;

Mount /home/stack
Mount de STACK cloud op /home/stack
mount /home/stack;

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /vault/tmp naar /home/stack/ben-xps. Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaand commando op de plaats van $SYNC de optie --delete toegevoegd.
rsync -ruv $SYNC --inplace /vault/tmp/Data /home/stack/ben-xps/;

Unmount /home/stack
Als het rsync commando uitgevoerd is zijn alle data getransferred naar de tijdelijke (lokale) cache en is de transfer naar de cloud nog alles behalve klaar.
Voordat we /home/stack unmounten meoten we daarom zeker stellen dat alle Webdav processen beeindigd zijn.
# Check of cache in /home/davfs2/ leeg is voordat verder gegaan wordt
       SLEEPTIME=60s
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       while [ $CHECK -gt 10 ] ; do
        echo;
        echo "Wacht, nog " $CHECK" Mb in lokale cache";
        LAST=$CHECK;
        sleep $SLEEPTIME
        CHECK=$(du -sm /home/davfs2/ | cut -f1);
        if [ "$CHECK" -lt 60 ] && [ "$CHECK" == "$LAST" ]; then
         echo "Geen voortgang meer";
         CHECK=1;
        fi;
       done

# Probeer te unmounten als cache leeg is, indien nog bezig: later opnieuw.
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       while mountpoint -q /home/stack/ && ! umount /home/stack/ &> /dev/null; do
       echo;
       echo "Wacht, mount is nog bezig met transfer, nog " $CHECK" Mb in cache";
       sleep $SLEEPTIME;
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       done

Delete /vault/tmp
Als de unmount gelukt is tijdelijk bestand /vault/tmp verwijderen
rm -rf /vault/tmp

Naar index

Stack-erica

Zie hier het volledige script.
Zie voor gedetailleerde procedurebeschrijving voorgaande sectie 'Stack-ben-xps'
Hieronder alleen de afwijkende scriptregels:

Haal bestandsnaamnaam en pad van het laatste backuppc archief (tarball) van de PC erica
FILE=$(ls -t /vault/backuppc/erica* | head -n 1);

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /vault/tmp naar /home/stack/ben-xps. Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaand commando op de plaats van $SYNC de optie --delete toegevoegd.
rsync -ruv $SYNC --inplace /vault/tmp/Data /home/stack/erica/;

Naar index

Stack-benovo

Zie hier het volledige script.
Zie voor gedetailleerde procedurebeschrijving voorgaande sectie 'Stack-ben-xps'
Hieronder alleen de afwijkende scriptregels:

Haal bestandsnaamnaam en pad van het laatste backuppc archief (tarball) van de PC erica
FILE=$(ls -t /vault/backuppc/benovo* | head -n 1);

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /vault/tmp naar /home/stack/ben-xps. Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaand commando op de plaats van $SYNC de optie --delete toegevoegd.
rsync -ruv $SYNC --inplace /vault/tmp/Data /home/stack/benovo/;

Naar index

Stack-files

Zie voor download hier het volledige script.
Hieronder de relevante regels:

Switch Backup of Synchronisatie
Het commando stack-files zal resulteren in een Backup en stack-files sync in een synchronisatie. Zie blok hieronder: RSYNC Backup of Synchroniseer.
SYNC=;
if [ "$1" == "sync" ] ; then
 SYNC=--delete;
fi

Unmount /home/stack
Check of /home/stack om wat voor reden dan ook nog gemount is en unmount deze
if mountpoint -q /home/stack; then
umount /home/stack;
fi

Wis cache
Verwijder het davfs2 cache bestand (van een vorige actie)
# Wis het davfs2 cache bestand (van een vorige actie)
# --------------------------------------------------
rm -rf /home/davfs2/*;
echo "cache is deleted";

Mount /home/stack
Mount de STACK cloud op /home/stack
mount /home/stack;

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /home/files/documenten, /home/files/muziek en /home/files/e-books naar /home/stack/files.
Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaande commando's op de plaats van $SYNC de optie --delete toegevoegd.
rsync -ruv $SYNC --inplace --exclude Mirror-bens-xps /home/files/documenten /home/stack/;
rsync -ruv $SYNC --inplace /home/files/muziek /home/stack/;
rsync -ruv $SYNC --inplace /home/files/e-books /home/stack/;

Unmount /home/stack
Als het rsync commando uitgevoerd is zijn alle data getransferred naar de tijdelijke (lokale) cache en is de transfer naar de cloud nog alles behalve klaar.
Voordat we /home/stack unmounten meoten we daarom zeker stellen dat alle Webdav processen beeindigd zijn.
# Check of cache in /home/davfs2/ leeg is voordat verder gegaan wordt
       SLEEPTIME=60s
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       while [ $CHECK -gt 10 ] ; do
        echo;
        echo "Wacht, nog " $CHECK" Mb in lokale cache";
        LAST=$CHECK;
        sleep $SLEEPTIME
        CHECK=$(du -sm /home/davfs2/ | cut -f1);
        if [ "$CHECK" -lt 60 ] && [ "$CHECK" == "$LAST" ]; then
         echo "Geen voortgang meer";
         CHECK=1;
        fi;
       done

# Probeer te unmounten als cache leeg is, indien nog bezig: later opnieuw.
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       while mountpoint -q /home/stack/ && ! umount /home/stack/ &> /dev/null; do
       echo;
       echo "Wacht, mount is nog bezig met transfer, nog " $CHECK" Mb in cache";
       sleep $SLEEPTIME;
       CHECK=$(du -sm /home/davfs2/ | cut -f1);
       done

Delete /vault/tmp
Als de unmount gelukt is tijdelijk bestand /vault/tmp verwijderen
rm -rf /vault/tmp

Naar index

Stack-www

Zie voor download hier het volledige script.
Zie voor gedetailleerde procedurebeschrijving voorgaande sectie 'Stack-files'
Hieronder alleen de afwijkende scriptregels:

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /var/www/html behalve piwigo en blog (wordpress) naar /home/stack/www.
Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaand commando op de plaats van $SYNC de optie --delete toegevoegd.
rsync -ruv $SYNC --inplace --exclude piwigo --exclude blog /var/www/html/ /home/stack/www/;

Naar index

Stack-pwg

Zie voor download hier het volledige script.
Zie voor gedetailleerde procedurebeschrijving voorgaande sectie 'Stack-files'
Hieronder alleen de afwijkende scriptregels:

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /home/pwgdata (behalve _data/i/galleries) en het websiteprogramma /var/www/html/piwigo naar /home/stack/.
Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaande commando's op de plaats van $SYNC de optie --delete toegevoegd.
De Piwigo data in _data/i zijn alle geschaalde afbeeldingen van de bronimages. Dit is een groot volume data waardoor het schrijven naar de cloud veel tijd vraagt. Voor een retore hebben we deze data echter niet nodig omdat Piwigo deze eenvoudig weer kan genereren van de bronimages.
rsync -ruv --inplace $SYNC --exclude _data/i/galleries/* /home/pwgdata /home/stack/
rsync -ruv --inplace $SYNC --no-links /var/www/html/piwigo /home/stack/;

Naar index

Stack-wp

Zie voor download hier het volledige script.
Zie voor gedetailleerde procedurebeschrijving voorgaande sectie 'Stack-files'
Hieronder alleen de afwijkende scriptregels:

RSYNC Backup of Synchroniseer
Transfer met rsync de data van /home/wpdata en het wordpress websiteprogramma /var/www/html/blog naar /home/stack/.
Als het commando gegeven werd met het attribuut 'sync', wordt in onderstaande commando's op de plaats van $SYNC de optie --delete toegevoegd.
De Piwigo data in _data/i zijn alle geschaalde afbeeldingen van de bronimages. Dit is een groot volume data waardoor het schrijven naar de cloud veel tijd vraagt. Voor een retore hebben we deze data echter niet nodig omdat Piwigo deze eenvoudig weer kan genereren van de bronimages.
rsync -ruv --inplace $SYNC --no-links /home/wpdata /home/stack/
rsync -ruv --inplace $SYNC --no-links /var/www/html/blog /home/stack/;

Naar index

CRON voor Stack backuptaken

Voorgaande scripts worden aangeroepen door een cron. Elke taak wordt 1 keer per maand om 21:00 uur uitgevoerd en elke taak op een andere dag van de maand.

# stack cloud 21.00 uur 1x/maand
0 21 2 * * /usr/local/bin/stack-ben-xps &> /dev/null
0 21 3 * * /usr/local/bin/stack-erica &> /dev/null
0 21 3 * * /usr/local/bin/stack-benovo &> /dev/null
0 21 4 * * /usr/local/bin/stack-files &> /dev/null
0 21 5 * * /usr/local/bin/stack-www &> /dev/null
0 21 6 * * /usr/local/bin/stack-pwg &> /dev/null
0 21 7 * * /usr/local/bin/stack-wp &> /dev/null

Naar index

Menu voor Stack Backups

Voorgaande Stack scripts worden maandelijks aangeroepen door bovenstaande cron's. Voor de tussentijdse backups of voor opruimwerkzaamheden de synchronisaties roepen we de procedures op aan de shell prompt. Om deze scripts op te nemen in het Utils programma maken we een menuscript aan.

Klik hier om het volledige script te bekijken of te downloaden.

Dit script wordt op zijn beurt aangeroepen door het onderdeel 'Backup' van het Utiliteitenmenu 'Utils'. Hiertoe wordt in het script 'Backup'een extra menuregel toegevoegd.

Naar index

PIWIGO Restore vanuit Stack

Bij opslag in de TransIP cloud STACK wijzigen de permissies, owners en timestamps.

Volg voor een restore van Piwigo de instructies zoals omschreven in het script 'backuppwg_readme' en nader toegelicht in de Piwigo pagina's
Met een restore uit STACK moeten we echter na het terugzetten van alle bestanden eerst nog de nodige correcties uitvoeren.

  1. Alle teruggezette bestanden in /home/pwgdata zijn root:root -> zet deze naar apache:apache
    # chown -R apache:apache /home/pwgdata

  2. Alle terugezette betsanden in /var/www/html/piwigo zijn root:root -> zet deze naar apache:apache
    # chown -R apache:apache /var/www/html/piwigo

  3. In de Piwigo rootfolder hebben we links aangemaakt en deze worden niet naar stack gekopiëerd. Bij een restore uit stack moeten we deze weer aanmaken
    # cd /var/www/html/piwigo

    # ln -s /home/pwgdata/_data _data
    # chown apache:apache _data

    # ln -s /home/pwgdata/galleries galleries
    # chown apache:apache galleries

    # ln -s /home/pwgdata/local local
    # chown apache:apache local


    # ln -s /home/pwgdata/template-extensions template-extensions
    # chown apache:apache template-extensions

    # ln -s /home/pwgdata/upload upload
    # chown apache:apache upload


  4. Herstel timestamps van de images in /home/pwgdata/galleries met de EXIF data
    # find -iname '*.jp*g' -exec jhead -ft {} \;

  5. Van alle geschaalde images in /home/pwgdata/_data/i wordt geen backup naar Stack gemaakt.
    Regenereer deze door Piwigo te openen in de browser. Ga hier naar Beheer -> Foto's -> Bulkbeheer.
    Selecteer alle images in Piwigo en kies de optie: Genereer meerdere formaat plaatjes.
    Dit kan lang duren, voor mijn 50.000 images duurde het 2 dagen. In zo'n geval is het beter alleen de recente foto's te selecteren (bijvoorbeeld afgelopen jaar) en hiervoor eerst de geschaalden maken. Als dat klaar is kan Piwigo in gebruik genomen worden terwijl op de achtergrond de rest van de geschaalden gemaakt worden.

Naar index

WORDPRESS Blog Restore vanuit Stack

Bij opslag in de TransIP cloud STACK wijzigen de permissies, owners en timestamps.

Volg voor een restore van Wordpress Blog de instructies zoals omschreven in het script 'backuppwg_readme' en nader toegelicht in de Wordpress pagina's
Met een restore uit STACK moeten we echter na het terugzetten van alle bestanden eerst nog de nodige correcties uitvoeren.

  1. Alle teruggezette bestanden in /home/wpdata zijn root:root -> zet deze naar apache:apache
    # chown -R apache:apache /home/wpdata

  2. Alle terugezette betsanden in /var/www/html/blog zijn root:root -> zet deze naar apache:apache
    # chown -R apache:apache /var/www/html/blog

  3. In de Blog folder wp-content hebben we een link aangemaakt en deze wordt niet naar stack gekopiëerd. Bij een restore uit stack moeten we deze weer aanmaken
    # cd /var/www/html/blog/wp-content

    # ln -s /home/wpdata/uploads uploads
    (zie ook Wordpress Installeren)
    # chown apache:apache uploads

Naar index