Maak een back-up van je Linux VPS met Plakar
Installeer plakar op Debian 12 of Ubuntu 24.04, maak een versleutelde gededupliceerde back-upopslag, maak back-ups van bestandssysteempaden en databases via stdin-piping, automatiseer back-ups en herstel bestanden of volledige databasedumps.
Wat is plakar en waarom gebruiken voor VPS-back-ups?
Plakar is een open-source back-uptool geschreven in Go. Het wordt geleverd als een enkel binair bestand met ingebouwde versleuteling, deduplicatie, een webinterface en een native scheduler. Versleuteling is standaard ingeschakeld wanneer je een repository aanmaakt. Plakar maakt back-ups van bestandssysteempaden, databasedumps via stdin-piping en S3-buckets. Het project is in januari 2026 toegetreden tot de Linux Foundation en CNCF.
Als je al restic of borgbackup gebruikt, dit zijn de verschillen. Restic heeft een extern hulpmiddel nodig zoals rclone voor externe synchronisatie en cron voor planning. Borgbackup heeft een borg-server nodig aan de externe kant en heeft geen ingebouwde webinterface. Plakar doet dit allemaal native: plakar sync repliceert tussen opslagplaatsen, plakar scheduler voert back-ups uit op intervallen, en plakar ui start een browserinterface om snapshots te bekijken.
Zowel restic als plakar ondersteunen stdin-back-ups voor het pipen van databasedumps. Borgbackup niet. Alle drie dedupliceren. Plakar schakelt versleuteling standaard in bij het aanmaken van een repository, terwijl restic en borgbackup het aanmaken van onversleutelde repos toestaan.
Deze handleiding behandelt lokale back-ups op een enkele VPS. Voor offsite-replicatie naar een externe server, zie Offsite backup en replicatie met Plakar.
Wat heb je nodig voordat je begint?
Je hebt een VPS nodig met Debian 12 of Ubuntu 24.04 met root- of sudo-toegang. Een Virtua Cloud VPS is hier geschikt voor. Je hebt ook SSH-toegang nodig met sleutelauthenticatie en minstens 10 GB vrije schijfruimte voor de back-upopslag.
Als je van plan bent databases te back-uppen, installeer dan eerst MySQL of PostgreSQL. Die installaties worden hier niet behandeld.
Alle commando's in deze handleiding worden als root uitgevoerd. Als je een sudo-gebruiker gebruikt, zet dan sudo voor elk commando.
Hoe installeer je plakar op Debian 12 of Ubuntu 24.04?
Voeg de officiële plakar apt-repository toe, importeer de GPG-ondertekeningssleutel en installeer het pakket. Dezelfde stappen werken op zowel Debian 12 als Ubuntu 24.04. Het apt-pakket regelt updates automatisch via je normale systeemupgradecyclus.
Installeer de vereisten:
apt update
apt install -y curl gnupg2
Importeer de GPG-sleutel en voeg de repository toe:
curl -fsSL https://plakar.io/dist/keys/community-v1.1.0.gpg | gpg --dearmor -o /usr/share/keyrings/plakar.gpg
echo "deb [signed-by=/usr/share/keyrings/plakar.gpg] https://plakar.io/dist/repos/deb/ stable main" | tee /etc/apt/sources.list.d/plakar.list
De GPG-sleutel is gekoppeld aan de repository via signed-by. Apt vertrouwt alleen pakketten die met die specifieke sleutel zijn ondertekend. Dit voorkomt dat een gecompromitteerde externe repository pakketten in je systeem injecteert.
Installeer plakar:
apt update
apt install -y plakar
Bevestig de installatie:
plakar version
plakar/v1.0.6
Hoe maak je een versleutelde Kloset-opslag aan?
Een Kloset-opslag is het opslagbackend van plakar. Het bevat alle snapshots in gededupliceerde, versleutelde vorm. Elk datablok wordt versleuteld voordat het naar schijf wordt geschreven. De Kloset-engine dedupliceert voor versleuteling, zodat identieke blokken over verschillende snapshots slechts eenmaal worden opgeslagen terwijl ze volledig versleuteld op schijf blijven.
Maak een opslag aan op /var/backups/plakar:
mkdir -p /var/backups/plakar
plakar at /var/backups/plakar create
Plakar vraagt om een wachtwoordzin:
repository passphrase:
Genereer een sterke wachtwoordzin:
openssl rand -base64 32
Bewaar deze wachtwoordzin in een wachtwoordmanager of op een aparte veilige locatie. Als je deze verliest, verlies je de toegang tot elke snapshot in de opslag. Er is geen herstelmechanisme.
Stel de rechten in op de opslagdirectory zodat alleen root er toegang toe heeft:
chmod 700 /var/backups/plakar
ls -la /var/backups/
drwx------ 5 root root 4096 Mar 20 10:00 plakar
De standaard opslaglocatie is ~/.plakar als je at <path> weglaat. Op een server gebruik je een vast pad zoals /var/backups/plakar zodat het niet afhankelijk is van de homedirectory van een gebruiker.
Hoe maak je een back-up van bestandssysteempaden met plakar?
Maak een back-up van de mappen die ertoe doen op een VPS: /etc voor systeemconfiguratie, /home voor gebruikersgegevens en /var/www voor webinhoud. Elk plakar backup-commando neemt een enkel pad. Voer een back-up uit per directory, of groepeer ze onder een gemeenschappelijke bovenliggende directory. Ongewijzigde bestanden tussen snapshots worden dankzij deduplicatie slechts eenmaal opgeslagen.
plakar at /var/backups/plakar backup /etc
Elke back-up maakt een snapshot die wordt geïdentificeerd door een kort hex-ID. De uitvoer toont elk verwerkt bestand en een samenvatting:
a5bcf13b: OK ✓ /etc/hostname
a5bcf13b: OK ✓ /etc/ssh/sshd_config
...
info: backup: created unsigned snapshot a5bcf13b of size 1.4 MiB in 210ms (wrote 1.7 MiB)
De tweede back-up van hetzelfde pad is sneller omdat alleen gewijzigde blokken worden opgeslagen. Maak op dezelfde manier een back-up van extra paden:
plakar at /var/backups/plakar backup /home
plakar at /var/backups/plakar backup /var/www
Snapshots taggen
Gebruik de -tag-vlag om snapshots te labelen. Dit helpt wanneer je veel snapshots hebt en ze later wilt filteren:
plakar at /var/backups/plakar backup -tag "daily,filesystem" /etc
Bestanden uitsluiten
Logbestanden, caches en build-artefacten verspillen ruimte in back-ups. Gebruik -ignore voor inline-patronen:
plakar at /var/backups/plakar backup -ignore "*.log" -ignore "cache/" /etc
Voor een langere lijst laad je patronen uit een bestand. De syntaxis volgt gitignore-regels:
cat > /etc/plakar-excludes <<EOF
*.log
*.tmp
*.swp
cache/
.cache/
node_modules/
__pycache__/
.git/
EOF
chmod 600 /etc/plakar-excludes
plakar at /var/backups/plakar backup -ignore-file /etc/plakar-excludes /etc
Scanmodus
Bekijk vooraf wat plakar zou back-uppen zonder iets naar de opslag te schrijven:
plakar at /var/backups/plakar backup -scan /etc
Dit toont elk bestand dat aan de back-upcriteria voldoet. Handig bij het afstemmen van uitsluitingspatronen.
Verificatie bij back-up
Voeg -check toe om direct na het voltooien van de back-up een integriteitsverificatie uit te voeren:
plakar at /var/backups/plakar backup -check /etc
Dit kost een paar extra seconden maar detecteert corruptie vroegtijdig.
Hoe maak je een back-up van een MySQL-database met plakar?
Pipe de uitvoer van mysqldump rechtstreeks naar plakar met de stdin:-bron. Geen tussenliggend dumpbestand raakt de schijf. De SQL-stroom gaat rechtstreeks van mysqldump naar de versleutelings- en deduplicatiepijplijn van plakar.
Voor een enkele database:
mysqldump --single-transaction \
--routines \
--triggers \
--events \
myapp_db | plakar at /var/backups/plakar backup stdin:myapp_db.sql
Wat elke vlag doet:
--single-transaction: maakt een consistent snapshot van InnoDB-tabellen zonder ze te vergrendelen. Andere query's blijven draaien.--routines: neemt opgeslagen procedures en functies mee.--triggers: neemt tabeltriggers mee.--events: neemt geplande events mee.
Voor alle databases op de server:
mysqldump --all-databases \
--single-transaction \
--routines \
--triggers \
--events \
--set-gtid-purged=OFF | plakar at /var/backups/plakar backup stdin:all_databases.sql
--set-gtid-purged=OFF laat GTID-metadata weg. Dit maakt de dump overdraagbaar naar verschillende MySQL-instanties zonder GTID-conflicten bij import.
De snapshot slaat de SQL-dump op als een enkel bestand dat is vernoemd naar het stdin:-label. Je verwijst naar deze naam bij het herstellen.
Hoe maak je een back-up van een PostgreSQL-database met plakar?
De aanpak is hetzelfde: pipe pg_dump naar plakar via stdin:. PostgreSQL-authenticatie gebruikt doorgaans peer-auth voor de postgres-systeemgebruiker, dus voer het dumpcommando uit onder dat account.
Voor een enkele database:
su - postgres -c "pg_dump --format=plain myapp_db" | plakar at /var/backups/plakar backup stdin:myapp_db.sql
Voor alle databases en rollen gebruik je pg_dumpall:
su - postgres -c "pg_dumpall" | plakar at /var/backups/plakar backup stdin:all_pg_databases.sql
pg_dumpall neemt globale objecten mee zoals rollen en tablespaces die pg_dump overslaat. Gebruik het wanneer je een volledige clusterback-up nodig hebt. pg_dump --format=plain produceert een gewoon SQL-bestand dat rechtstreeks in psql kan worden gepiped bij herstel.
Hoe lijst en bekijk je plakar-snapshots?
Toon alle snapshots in de opslag met plakar ls. Elke regel toont het tijdstempel, de snapshot-ID, de gecomprimeerde grootte, de back-upduur en het bronpad.
plakar at /var/backups/plakar ls
2026-03-20T10:05:12Z a5bcf13b 1.4 MiB 0s /etc
2026-03-20T10:06:01Z 5fc17459 0 B 0s /home
2026-03-20T10:06:15Z 7ed22fb8 24 B 0s /var/www
2026-03-20T10:10:45Z ec916c75 2.0 KiB 0s /
2026-03-20T10:12:03Z 08ee9b7e 1.2 MiB 0s /
Stdin-back-ups verschijnen met / als bronpad in de lijst. De snapshot-ID is wat je gebruikt om ze te onderscheiden.
Filteren op tag:
plakar at /var/backups/plakar ls -tag daily
De inhoud van een specifieke bestandssysteemsnapshot bekijken:
plakar at /var/backups/plakar ls a5bcf13b
Beperken tot een subdirectory:
plakar at /var/backups/plakar ls a5bcf13b:/etc/ssh/
Webinterface
Voor een visuele interface start je de ingebouwde webinterface. Op een server zonder desktop voeg je -no-spawn toe om te voorkomen dat een browser wordt geopend:
plakar at /var/backups/plakar ui -no-spawn -addr localhost:8080
De interface laat je snapshots bekijken, bestandsinhoud weergeven en individuele bestanden downloaden. Plakar genereert automatisch een authenticatietoken en toont de URL met het token toegevoegd.
Om tokenauthenticatie uit te schakelen (niet aanbevolen voor productie):
plakar at /var/backups/plakar ui -no-spawn -no-auth -addr localhost:8080
Stop het met Ctrl+C wanneer je klaar bent. Voor permanente toegang zet je een reverse proxy met TLS ervoor en houd je de tokenauthenticatie ingeschakeld.
Hoe controleer je de back-upintegriteit met plakar?
Voer plakar check uit tegen een snapshot-ID om elk blok te verifiëren. Plakar leest elk blok terug uit de opslag, ontsleutelt het en berekent de checksums opnieuw. Als een blok is beschadigd of gemanipuleerd, mislukt de controle.
plakar at /var/backups/plakar check a5bcf13b
info: a5bcf13b: ✓ /etc/hostname
info: a5bcf13b: ✓ /etc/ssh/sshd_config
info: a5bcf13b: ✓ /etc/apt/sources.list.d/plakar.list
...
info: check: verification of a5bcf13b:/etc completed successfully
Elk bestand krijgt een vinkje als de checksum overeenkomt. Beschadigde bestanden tonen een foutmarkering.
Om elke snapshot in de opslag in een keer te verifiëren:
plakar at /var/backups/plakar check
Voor een snellere structurele controle die digestverificatie op individuele blokken overslaat:
plakar at /var/backups/plakar check -fast a5bcf13b
Voer regelmatig integriteitscontroles uit. Wekelijks is een redelijke frequentie voor de meeste VPS-werklasten. Een back-up die je nooit verifieert, is een back-up die je niet kunt vertrouwen.
Hoe herstel je bestanden uit een plakar-back-up?
Herstel een volledige snapshot naar een doeldirectory met plakar restore. Plakar maakt de volledige directorystructuur opnieuw aan onder het doelpad. Originele rechten en tijdstempels worden behouden.
mkdir -p /tmp/restore
plakar at /var/backups/plakar restore -to /tmp/restore a5bcf13b
info: restore: restoration of a5bcf13b:/etc at /tmp/restore completed successfully
Om een enkel bestand te herstellen, gebruik je plakar cat en leid je de uitvoer om:
plakar at /var/backups/plakar cat a5bcf13b:/etc/hostname > /tmp/hostname.restored
Om slechts een directory uit een snapshot te herstellen:
plakar at /var/backups/plakar restore -to /tmp/restore 7ed22fb8:/var/www
Dit extraheert alleen /var/www en de inhoud ervan. Al het andere in de snapshot blijft onaangeroerd.
Herstel altijd eerst naar een tijdelijke locatie. Vergelijk de herstelde bestanden met de huidige serverstatus voordat je iets direct overschrijft. Een onzorgvuldig herstel naar / kan configuratiebestanden overschrijven die zijn gewijzigd sinds de snapshot is gemaakt.
Hoe herstel je een databasedump uit plakar?
Gebruik plakar cat om de SQL-dump uit een snapshot rechtstreeks naar de databaseclient te streamen. Geen tussenliggend bestand op schijf. Gebruik de snapshot-ID van de stdin-back-up die je wilt herstellen.
MySQL
Een enkele database herstellen:
plakar at /var/backups/plakar cat ec916c75:myapp_db.sql | mysql myapp_db
Alle databases herstellen uit een volledige dump:
plakar at /var/backups/plakar cat 08ee9b7e:all_databases.sql | mysql
PostgreSQL
Een enkele database herstellen:
plakar at /var/backups/plakar cat f86ce26a:myapp_db.sql | su - postgres -c "psql myapp_db"
Het volledige cluster herstellen:
plakar at /var/backups/plakar cat c09e650e:all_pg_databases.sql | su - postgres -c "psql"
Test herstelbewerkingen op een niet-productiedatabase of een schone testserver. Een back-upstrategie zonder geteste herstelbewerkingen is geen back-upstrategie. Plan minstens eenmaal per kwartaal een hersteltest.
Hoe automatiseer je back-ups met de plakar-scheduler?
Plakar heeft een ingebouwde scheduler die back-uptaken op gedefinieerde intervallen uitvoert. Geen cron nodig. Je definieert taken in een YAML-bestand en plakar regelt timing, uitvoering en optionele integriteitscontroles na de back-up.
Registreer eerst de opslag met opgeslagen inloggegevens zodat de scheduler er zonder interactieve wachtwoordzinprompts toegang toe heeft. Maak een wachtwoordzinbestand met beperkte rechten:
mkdir -p /etc/plakar
openssl rand -base64 32 > /etc/plakar/passphrase
chmod 600 /etc/plakar/passphrase
chown root:root /etc/plakar/passphrase
ls -la /etc/plakar/passphrase
-rw------- 1 root root 45 Mar 20 10:20 /etc/plakar/passphrase
Gebruik deze wachtwoordzin bij het aanmaken van de opslag (of werk de opslag bij als je er al een met een andere wachtwoordzin hebt aangemaakt). Registreer de opslag op naam:
plakar store add mybackups \
location=/var/backups/plakar \
passphrase_cmd="cat /etc/plakar/passphrase"
Maak nu de schedulerconfiguratie aan. Elke taak maakt een back-up van een pad:
mkdir -p /etc/plakar
cat > /etc/plakar/scheduler.yaml <<'EOF'
agent:
tasks:
- name: backup etc
repository: "@mybackups"
backup:
path: /etc
interval: 24h
check: true
- name: backup home
repository: "@mybackups"
backup:
path: /home
interval: 24h
- name: backup www
repository: "@mybackups"
backup:
path: /var/www
interval: 24h
EOF
chmod 600 /etc/plakar/scheduler.yaml
Test het eerst handmatig:
plakar scheduler start -tasks /etc/plakar/scheduler.yaml
De scheduler draait op de voorgrond en logt de taakuitvoering. Stop met Ctrl+C. Om het als achtergronddaemon uit te voeren, gebruik je de systemd-service hieronder beschreven.
De scheduler verwerkt bestandssysteemback-ups native. Databasedumps die door mysqldump of pg_dump gepiped moeten worden, vereisen een wrapper-script. Maak er een:
cat > /etc/plakar/backup-databases.sh <<'EOF'
#!/bin/bash
set -euo pipefail
# MySQL
if command -v mysqldump &>/dev/null; then
mysqldump --all-databases \
--single-transaction \
--routines \
--triggers \
--events \
--set-gtid-purged=OFF | plakar at @mybackups backup -tag "daily,mysql" stdin:all_databases.sql
fi
# PostgreSQL
if command -v pg_dump &>/dev/null; then
su - postgres -c "pg_dumpall" | plakar at @mybackups backup -tag "daily,postgresql" stdin:all_pg_databases.sql
fi
EOF
chmod 700 /etc/plakar/backup-databases.sh
Hoe voer je de plakar-scheduler uit als systemd-service?
Verpak de scheduler in een systemd-unit zodat deze bij het opstarten start, bij fouten opnieuw start en integreert met journalctl voor logging.
cat > /etc/systemd/system/plakar-scheduler.service <<EOF
[Unit]
Description=Plakar Backup Scheduler
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/plakar scheduler start -tasks /etc/plakar/scheduler.yaml
ExecStop=/usr/bin/plakar scheduler stop
Restart=on-failure
RestartSec=30
User=root
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
Als je ook het databaseback-upscript uitvoert, maak dan een aparte timer:
cat > /etc/systemd/system/plakar-db-backup.service <<EOF
[Unit]
Description=Plakar Database Backup
After=network.target mysql.service postgresql.service
[Service]
Type=oneshot
ExecStart=/etc/plakar/backup-databases.sh
User=root
EOF
cat > /etc/systemd/system/plakar-db-backup.timer <<EOF
[Unit]
Description=Run Plakar Database Backup Daily
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
Activeer en start alles. enable --now zorgt ervoor dat de service herstarts overleeft en start deze onmiddellijk:
systemctl daemon-reload
systemctl enable --now plakar-scheduler.service
systemctl status plakar-scheduler.service
● plakar-scheduler.service - Plakar Backup Scheduler
Loaded: loaded (/etc/systemd/system/plakar-scheduler.service; enabled; preset: enabled)
Active: active (running)
Voor de databaseback-uptimer:
systemctl enable --now plakar-db-backup.timer
systemctl list-timers plakar-db-backup.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2026-03-21 02:00:00 UTC 15h left n/a n/a plakar-db-backup.timer plakar-db-backup.service
Schedulerlogs monitoren:
journalctl -u plakar-scheduler.service -f
Hoe verwijder je oude snapshots?
Verwijder een snapshot op ID. Standaard voert plakar rm een droge run uit en toont wat verwijderd zou worden. Voeg -apply toe om de snapshot daadwerkelijk te verwijderen:
plakar at /var/backups/plakar rm a5bcf13b
rm: would remove these 1 snapshot(s), run with -apply to proceed
2026-03-20T10:05:12Z a5bcf13b 1.4 MiB 0s /etc
plakar at /var/backups/plakar rm -apply a5bcf13b
info: rm: removal of a5bcf13b completed successfully
De deduplicatie van plakar betekent dat het verwijderen van een snapshot alleen ruimte vrijmaakt voor datablokken die niet door een andere overgebleven snapshot worden gerefereerd. Als twee snapshots 90% van hun gegevens delen, maakt het verwijderen van een alleen de unieke 10% vrij.
Er ging iets mis?
"repository passphrase" bij elk commando. Plakar vereist de wachtwoordzin telkens wanneer je interactief toegang tot de opslag hebt. Registreer de opslag met plakar store add en een passphrase_cmd zoals getoond in de schedulersectie. Verwijs dan naar de opslag op naam:
plakar at @mybackups backup /etc
Je kunt ook de -keyfile-vlag gebruiken om naar een wachtwoordzinbestand te verwijzen voor eenmalige commando's:
plakar -keyfile /etc/plakar/passphrase at /var/backups/plakar backup /etc
Exporteer nooit PLAKAR_PASSPHRASE in je shellprofiel of .bashrc. Het belandt in je shellgeschiedenis en proceslijsten. Gebruik in plaats daarvan het passphrase_cmd-patroon of de -keyfile-vlag.
"permission denied" bij het back-uppen. Plakar heeft leestoegang nodig tot de bronbestanden. Als root uitvoeren voorkomt dit. Als je een speciale back-upgebruiker gebruikt, verleen dan leesrechten op de doeldirectory's met ACL's of groepslidmaatschap.
Snapshots zijn groter dan verwacht. Je maakt waarschijnlijk een back-up van logbestanden, caches of build-artefacten. Gebruik -ignore of -ignore-file om ze uit te sluiten. Voer eerst een -scan uit om te zien wat er wordt meegenomen.
"no space left on device" tijdens de back-up. De back-upopslag en tijdelijke packbestanden hebben schijfruimte nodig. Controleer met df -h. De opslag groeit naarmate je snapshots toevoegt. Houd het in de gaten.
plakar-logs lezen. Plakar schrijft uitvoer naar stdout. Leid zowel stdout als stderr om naar een bestand:
plakar at /var/backups/plakar backup /etc > /var/log/plakar-backup.log 2>&1
Voor uitgebreide uitvoer gebruik je de globale -trace-vlag (voor at):
plakar -trace all at /var/backups/plakar backup /etc > /var/log/plakar-debug.log 2>&1
Volgende stappen
Je back-ups draaien nu op schema, maar ze staan op dezelfde schijf als de gegevens die ze beschermen. Een schijfstoring, ransomware of een gecompromitteerde server vernietigt beide tegelijk.
Breng je back-ups offsite. Offsite backup en replicatie met Plakar behandelt het repliceren van snapshots naar een externe server of S3-compatibele opslag met plakar sync.
Copyright 2026 Virtua.Cloud. Alle rechten voorbehouden. Deze inhoud is een origineel werk van het Virtua.Cloud-team. Reproductie, herpublicatie of herdistributie zonder schriftelijke toestemming is verboden.
Klaar om het zelf te proberen?
Deploy uw eigen server in seconden. Linux, Windows of FreeBSD.
Bekijk VPS-aanbod