Logiciels en ligne de commande

plakar : Solution de backup sous Linux

Table des matières

plakar-logo



Introduction



Plakar est un outil de sauvegarde moderne et efficace, conçu pour simplifier la gestion des données tout en garantissant leur sécurité. Avec des fonctionnalités avancées telles que la déduplication, le chiffrement de bout en bout et une interface utilisateur.

Nous allons voir comment utiliser et paramétrer tout ça.

Détails et fonctionalités techniques



Juste avant, quelques détails techniques pour les geeks !

Plakar supporte la déduplication, la compression et le chiffrement :
- La sauvegarde incrémentale des données rend l'outil approprié pour les sauvegardes quotidiennes puisque seules les modifications sont sauvegardées.
- La technique de déduplication va éviter le stockage multiple de fichiers identiques (plus précisément de blocs de données) d'une sauvegarde à l'autre
- La technique de chiffrement est adaptée aux sauvegardes vers des destinations qui ne sont pas totalement fiables. Ainsi une sauvegarde sur disque amovible pourra rester à l'abris des regards indiscrets.

Plakar permet aussi de réaliser :
- Une compression des données sauvegardées pour gagner de la place
- Des sauvegardes distantes avec le support de dépôts distants.

Pour accéder aux sauvegardes, on devra disposer d'un système ayant plakar d'installé.
L'outil ne sauvegarde pas en effet en mode fichier comme un bon vieux copier coller, ou un rsync mais il propose des fonctions intéressantes, ce qui peut répondre à votre besoin.

Aucune base de données n'est nécessaire, les métadonnées sont stockées dans le dépôt de sauvegarde lui même.

Installation



Le produit étant tout récent, il n'est pas encore incorporé aux distributions Linux.

On pourra l'installer depuis les instructions officielles (nécessite 1Go) :
Code BASH :
go install github.com/PlakarKorp/plakar@latest


Depuis la section releases de Github où des .DEB et .RPM sont fournis à partir de la version 1.0.3 : https://github.com/PlakarKorp/plakar/releases

Fedora depuis mon dépôt perso :
Code BASH :
dnf copr enable adriend/fedora-apps

Code BASH :
dnf install plakar


Utilisation



Dans l'exemple de ce tutoriel, j'utilise un point de montage local /run/media/adrien/backups sur lequel le disque de sauvegarde est monté automatiquement au branchement

A noter que le dossier de destination de sauvegarde doit être complètement vierge. Si on utilise un disque dédié, formaté en ext4 par exemple, le dossier lost+found posera problème.
Créez simplement un dossier sur votre disque.
Code BASH :
mkdir /run/media/adrien/backups/plakar


Toutes les commandes auront une syntaxe telle que :
Code BASH :
plakar at CHEMIN_DU_DEPOT action options


Initialiser le dépôt plakar



Avant de lancer notre première sauvegarde, il faut créer un repository.
Cela permet de créer dans la destination directement les métadonnées qui vont bien.

Pour créer le dépôt :
Code BASH :
plakar at /run/media/adrien/backups create


la passphrase sera demandée 2 fois :
Code TEXT :
repository passphrase: 
repository passphrase (confirm): 


C'est cette passphrase qui vous permettra de déchiffrer le contenu. Ne pas l'oublier !

Chaque action (création de dépôt, backup, list, restauration ...) vous redemandra cette passphrase.
Vous pouvez vous affranchir de la saisie de la passphrase en définissant la variable d'environnement PLAKAR_PASSPHRASE :
Code BASH :
export PLAKAR_PASSPHRASE="A1Z2E3R4t(y-uèi_"


Plusieurs options sont possibles :
-no-compression : Désactiver la compression
-weak-passphrase : Autosier une passphrase avec une faible complexité
-no-encryption : Pas de chiffrement

Exemple sans chiffrement (non recommandé quand même...) :
Code BASH :
plakar at /run/media/adrien/backups create -no-encryption


A propos de l'agent



Plakar va fonctionner avec un agent. Il est nécessaire que cet agent soit lancé pour effectuer les actions autres que la création.
Lancer l'agent avec :
Code BASH :
plakar agent


Une confirmation indique que l'agent est lancé :
Code :
agent started with pid=38458



Créer une sauvegarde



Pour créer notre sauvegarde, on va utiliser la sous commande create :
Code BASH :
plakar at /run/media/adrien/backups/plakar backup /media/DATA/Documents-Perso


Durant le backup, chaque fichier traité est affiché à l'écran avec le statut de l'opération :
Code TEXT :
0511f97b: OK ✓ /media/DATA/Documents-Perso/fichier4.txt
0511f97b: OK ✓ /media/DATA/Documents-Perso/fichier3.txt
0511f97b: OK ✓ /media/DATA/Documents-Perso/fichier2.txt
0511f97b: OK ✓ /media/DATA/Documents-Perso/fichier1.txt
0511f97b: OK ✓ /media/DATA/Documents-Perso
0511f97b: OK ✓ /media/DATA
0511f97b: OK ✓ /media
0511f97b: OK ✓ /


Une fois terminé, on a des stats :
Code TEXT :
info: backup: created unsigned snapshot 0511f97b of size 478 GB in 1h26m19.400130115s (wrote 450 GB)


Si je relance un deuxième backup, voyez que la taille est similaire, mais peu de données ont été écrites car peu de changements :
Code TEXT :
info: backup: created unsigned snapshot 7dbf34ba of size 478 GB in 3m2.743951499s (wrote 11 MB)



Lister les backups



Pour visualiser les backups sur un repository, on utilisera la sous commande ls :

Code BASH :
plakar at /run/media/adrien/backups/plakar ls


Qui produit ceci :
Code TEXT :
2025-08-02T18:18:45Z   7dbf34ba    478 GB      3m3s /media/DATA/Documents-Perso
2025-08-02T16:47:16Z   0511f97b    478 GB  1h26m19s /media/DATA/Documents-Perso


On retrouvera la date du backup, l'ID du backup, la taille, le temps de backup, le dossier backupé.

Si on listez un repository chiffré, la passphrase nous sera demandée.


Lister le contenu d'un backup



Pour visualiser le contenu d'un backup particulier sur un repository, on utilisera la sous commande ls également mais en spécifiant l'ID du backup :
Code BASH :
plakar at /run/media/adrien/backups/plakar ls  7dbf34ba


Ce qui sort une liste dont voici un extrait (avec les permissions à la ls -l ) :

Code TEXT :
2016-06-15T16:54:29Z -rw-r--r--   adrien   adrien   355 kB  Loi n° 78-17 du 6 janvier 1978.pdf
2019-10-25T12:27:37Z -rw-r--r--   adrien   adrien   916 kB 2019.10.25_dp_trotinettes.pdf
2024-12-07T09:16:42Z drwxr-xr-x   adrien   adrien   4.1 kB AA_AutoEntreprise
2025-07-29T17:38:09Z drwxr-xr-x   adrien   adrien   4.1 kB AA_Important
2025-05-24T15:55:45Z drwxr-xr-x   adrien   adrien   4.1 kB AA_Linux_Config


Si on listez un backup d'un repository chiffré, la passphrase nous sera demandée.

Rechercher un fichier dans un backup



Pour parcourir un backup et partir à la recherched'un fichier, on utilisera la sous commande locate :
Code BASH :
plakar at /run/media/adrien/backups/plakar locate "Demande CNIL.odt"


Ce qui donne :
Code TEXT :
0511f97b:/media/DATA/Documents-Perso/Docs/Demande CNIL.odt
7dbf34ba:/media/DATA/Documents-Perso/Docs/Demande CNIL.odt


On a l'ID du snapshot et le nom du fichier.

Il existe plus d'options de recherches, avec des critères :
-latest : Applique la recherche au dernier snapshot
-before 1w : Applique les recherches aux snapshots de plus d'une semaine
-since 2025-07-31 : Applique les recherches aux snapshots après le 31 juillet 2025 (autre exemple de date)

Informations sur un backup



Si on désire des informations globales sur un backup, c'est la sous commande info :
Code BASH :
plakar at /run/media/adrien/backups/plakar info 0511f97b


Ce qui produit ceci :
Code TEXT :
Version: 1.0.0
Timestamp: 2025-08-02 18:39:02.818776425 +0200 CEST
RepositoryID: f95fe7c6-631d-4e1f-be39-2edc9ba37db0
Packfile:
 - MaxSize: 21 MB (20971520 bytes)
Chunking:
 - Algorithm: FASTCDC
 - MinSize: 66 kB (65536 bytes)
 - NormalSize: 1.0 MB (1048576 bytes)
 - MaxSize: 4.2 MB (4194304 bytes)
Hashing:
 - Algorithm: BLAKE3
 - Bits: 256
Compression:
 - Algorithm: LZ4
 - Level: 131072
Snapshots: 2
Storage size: 475 GB (475179610793 bytes)
Logical size: 957 GB (956744481774 bytes)
 



Restaurer des éléments



Si on fait une sauvegarde, c'est pour vous sauver la vie le jour où vous avez besoin de récupérer un ou des fichiers.

La sous commande qui nous sera utile sera restore avec l'IS du snapshot à restaurer :
Code BASH :
plakar at /run/media/adrien/backups/plakar restore 7dbf34ba


Cela restaurera TOUT le backup dans un dossier plakar-dateactuelle (par exemple plakar-2025-08-02T20:41:18+02:00) dans le dossier courant.

On pourra spécifier un dossier spécifique de restauration avec l'option -to :
Code BASH :
plakar at /run/media/adrien/backups/plakar restore -to ~/tmp/ 7dbf34ba

Dans cet exemple, aucun dossier plakar-dateactuelle ne sera créé, c'est restauré tel quel !
Si un fichier existe déjà dans la localisation, il sera alors remplacé par celui du fichier restauré !

Evidemment on pourra récupérer qu'un dossier ou un fichier en spécifiant leur nom :
Code BASH :
plakar at /run/media/adrien/backups/plakar restore -to ~/tmp/ 7dbf34ba:/media/DATA/Documents-Perso/Docs/loi\ anti\ pub.doc


Ce qui donne :
Code TEXT :
info: 7dbf34ba: OK ✓ /media/DATA/Documents-Perso/Docs/loi anti pub.doc
info: restore: restoration of 7dbf34ba:/media/DATA/Documents-Perso/Docs/loi anti pub.doc at /home/adrien/tmp/plakar/ completed successfully



Monter une sauvegarde



Plutôt que de restaurer avec les commandes comme vu précédemment, on pourra monter une sauvegarde sur un point de montage.

Cela nous permettra de parcourir la sauvegarde comme un dossier classique, et de restaurer les éléments par copier coller en ligne de commande ou graphique.

Le montage se fait dans l'espace utilisateur. Par conséquent, nul besoin des droits root pour faire les opérations de montage et démontage.

Exemple :
Code BASH :
plakar at /run/media/adrien/backups/plakar mount ~/tmp/plakar/


On notera que les données sont montées en lecture seule comme l'indique la commande mount :
Code TEXT :
info: mounted repository fs:///run/media/adrien/backups/plakar at /home/adrien/tmp/plakar/


Le terminal ne rend pas la main, c'est normal.

Les données de ma sauvegarde sont accessibles en mode fichier, on peut donc les lister, les copier/coller, etc. :

plakar-mount



Pour démonter, ne soyez plus dans le dossier, et un simple Ctrl+C libèrera le montage.

Supprimer des backup



Si je relance un listing j'ai ici 4 backups pour la démo :

Code TEXT :
2025-08-02T19:10:22Z   300c97f3    478 GB       25s /media/DATA/Documents-Perso
2025-08-02T19:08:44Z   09e90b07    478 GB       29s /media/DATA/Documents-Perso
2025-08-02T18:18:45Z   7dbf34ba    478 GB      3m3s /media/DATA/Documents-Perso
2025-08-02T16:47:16Z   0511f97b    478 GB  1h26m19s /media/DATA/Documents-Perso


Si je veux supprimer un backup, on va utiliser la sous commande rm :
Code BASH :
plakar at /run/media/adrien/backups/plakar rm 09e90b07


On a une info du backup supprimé :
Code TEXT :
info: rm: removal of 09e90b07 completed successfully


Et si je reliste mon backup a disparu :
Code TEXT :
2025-08-02T19:10:22Z   300c97f3    478 GB       25s /media/DATA/Documents-Perso
2025-08-02T18:18:45Z   7dbf34ba    478 GB      3m3s /media/DATA/Documents-Perso
2025-08-02T16:47:16Z   0511f97b    478 GB  1h26m19s /media/DATA/Documents-Perso


Evidemment, les 2 autres sauvegardes sont bien intactes, plakar gère tout comme un grand.

Supprimer des archives ne libère pas réellement de la place. Pour cela on pourra compacter le dépôt avec la sous commande maintenance :
Code BASH :
plakar at /run/media/adrien/backups/plakar maintenance


Les données ne sont pas supprimées plus tard, une période de grace est de 30 jours au 2 août 2025.


Epurer des backups



Parfois on peut avoir besoin de garder que les X derniers backups. Cela peut être utile dans le cas d'une automatisation via script.

Pour cela on va utiliser la sous commande rm avec des options supplémentaires.
Exemple ici pour supprimer les backups plus vieux d'une date :
Code BASH :
plakar at /run/media/adrien/backups/plakar rm -before 2025-07-01


L'option -before prend en charge une date au format YYYY-MM-DD et prochainement 365d pour 365 jours

A propos des dépôts distants



On va pouvoir gérer plusieurs type de dépôts. On a vu que des dépôts locaux dans ce tutoriel.

Dépôts SFTP



Il est possible d'utiliser un dépôts à travers un SFTP (FTP sur SSH).
Il est nécessaire en prérequis d'avoir un paire de clés SSH pour effectuer l'authentification.
Note : La paire de clés ne doit pas disposer de passphrase ou être déjà stockée dans le ssh-agent !

On préfixe juste le chemin du dépôt avec le protocole sftp:// , l'utilisateur et l'hôte distant à utiliser :
Code BASH :
plakar at sftp://adrien@192.168.21.200/run/media/adrien/backups/remote/ backup /media/DATA/Documents-Perso/


Interface graphique



Plakar dispose d'une interface graphique. Elle se lance dans un module Web.
Avec la version 1.0.2, celle-ci est rudimentaire mais elle va s'améliorer.

Pour lancer l'interface graphique, on utilisera la sous commande ui :
Code BASH :
plakar at /run/media/adrien/backups/plakar ui


Le navigateur s'ouvre et il est possible de parcourir les backups, lancer des opérations de restauration, etc...

plakar-ui-1
plakar-ui-2




Quelques autres options utiles



Vérifier la consistance du dépôt



Pour vériier la cohérence du dépôt, on pourra utiliser la sous commande check et rechercher d'éventuels problèmes de consistance :
Code BASH :
plakar at /run/media/adrien/backups/plakar check


Compacter les données



A force de générer des sauvegardes, et d'en supprimer, on peut tenter de recompacter l'ensemble des données pour libérer un peu d'espace et réorganiser tout ça. On pourra le faire avec la sous commande maintenance :
Code BASH :
plakar at /run/media/adrien/backups/plakar maintenance


Au 2 août 2025, confirmé par l'équipe de Plakar, une période de grace de 30 jours est présente. Cette durée devrait être réduite par la suite (ou personnalisable)

Synchroniser un dépôt



Si on a besoin de faire une synchronisation d'un dépôt sur un autre (un local vers un distant, ou de temps en temps sur un disque USB), on a la sous commande sync :
Code BASH :
plakar at /run/media/adrien/backups/plakar/ sync to sftp://adrien@192.168.21.200/run/media/adrien/backups/remote/


Stopper l'agent



Si après le backup on veut couper l'agent, on pourra le faire avec :
Code BASH :
plakar agent stop
Cette page a été vue 2008 fois