Comment configurer des sauvegardes à distance avec Bacula sur Ubuntu 20.04
Nous avons récemment créé un fichier sauvegarde sur un local Ubuntu Serveur 20.04 avec Bacula, nous utiliserons ce serveur comme directeur et stockage Bacula. Dans ce tutoriel, nous ajouterons des paramètres pour la sauvegarde d'un client distant.
Installation et configuration du client
Le client est une machine distante exécutant Ubuntu Serveur 20.04 dont les données seront sauvegardées. Installons le paquet Bacula pour cela.
sudo apt install bacula-clientOuvrez le fichier de configuration.
sudo nano /etc/bacula/bacula-fd.confCopiez le mot de passe de la première section du directeur dans un emplacement disponible pour une utilisation future sur le serveur Bacula.
Director {
Name = Ubuntu-Server # Enter the name of the server’s Bacula Director here
Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" #Copy this value
}Définissez également les valeurs « Name » et « FDAddress » dans la section FileDaemon. Le même nom que nous allons définir sur le serveur Bacula pour ce client de démon de fichiers et « FDAddress » doivent contenir l'adresse IP à laquelle ce client est disponible.
FileDaemon {
Name = Ubuntu-Client-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /run/bacula
Maximum Concurrent Jobs = 20
Plugin Directory = /usr/lib/bacula
FDAddress = 10.5.5.5
}Enregistrez le fichier et redémarrez le service.
sudo systemctl restart bacula-fdPour pouvoir restaurer des fichiers sur cette machine, créez un dossier et faites de bacula son propriétaire.
mkdir /opt/restore
chown bacula:bacula /opt/restoreConfiguration du serveur Bacula
Le serveur Bacula est déjà configuré. Nous allons utiliser le stockage existant et ajouter une configuration pour sauvegarder le client.
Définissez l'adresse IP du serveur dans le paramètre « SDAddress » de la section « Stockage » du /etc/bacula/bacula-sd.conf fichier.
Storage {
...
SDAddress = 10.5.5.1
}Ouvrez le fichier de configuration de Bacula Director /etc/bacula/bacula-dir.conf.
Entrez l'adresse IP du serveur dans le champ "DirAddress" de la section Director.
Director {
Name = Ubuntu-Server
...
DirAddress = 10.5.5.1
}Saisissez la même adresse dans le paramètre « Adresse » de la section « Stockage ».
Storage {
...
Address = 10.5.5.1
}Vous devez également le saisir dans le paramètre « Adresse » dans le /etc/bacula/bconsole.conf fichier.
Maintenant, allez à la /etc/bacula/bacula-dir.conf Recopiez le fichier et ajoutez une nouvelle section « Client ».
Client {
Name = Ubuntu-Client-fd # Value of the “Name” field in the “FileDaemon” section on the client
Address = 10.5.5.5 # IP address of the client
FDPort = 9102
Catalog = MyCatalog
Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" # Paste here the value of the “Password” parameter in the “Director” section on the client
}Ajoutez une nouvelle section « FileSet » avec un nom unique. Les paramètres « File » définissent les chemins à sauvegarder. Vous pouvez en ajouter autant que vous le souhaitez.
FileSet {
Name = "RemoteFS"
Include {
Options {
signature = MD5
}
File = /home/user1
File = /home/user2
}
}Ajoutez une nouvelle section "Planification", définissez-lui un nom unique et sélectionnez une heure pour la sauvegarde.
Schedule {
Name = "RemoteDaily"
Run = Full daily at 05:00
}Ajouter une nouvelle section Piscine.
Pool {
Name = RemotePool
Pool Type = Backup
Label Format = "RM-" # New label for separating files in the backup storage from local backups
}
Ajouter une nouvelle section Emploi.
Job {
Client = "Ubuntu-Client-fd" # The “Name” value of the recently created “Client”
Name = "RemoteBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "RemoteFS" # The name of recently added “FileSet’ section
Schedule = "RemoteDaily" # The name of the schedule for this Job
Pool = "RemotePool" # Must be equal to the recently created “Pool” name
Storage = LocalSD
Write Bootstrap = "/var/lib/bacula/RemoteBackup.bsr"
}Ajoutez également la section "Travail" pour pouvoir restaurer les données.
Job {
Name = "RemoteRestore"
Type = Restore
Client= "Ubuntu-Client-fd"
FileSet="Full Set"
Storage = LocalSD
Pool = "RemotePool"
Messages = Standard
Where = /opt/restore # Path to the folder that we created on the client for data restore
Bootstrap = "/var/lib/bacula/RemoteBackup.bsr"
}Enregistrez et fermez le fichier et redémarrez le service Bacula.
sudo systemctl restart bacula-dirExécution de la sauvegarde du serveur distant à l'aide de Bacula
La tâche de sauvegarde va maintenant démarrer à l'heure planifiée. Pour le démarrer immédiatement, rendez-vous dans la "bconsole".
bconsoleSortie :
Connecting to Director 10.5.5.1:9101
1000 OK: 103 Ubuntu-Server Version: 9.4.2 (04 February 2019)
Enter a period to cancel a command.
*Entrez « run » et sélectionnez la tâche « RemoteBackup ». Vous pouvez maintenant vérifier, modifier ou confirmer les paramètres répertoriés. Vous pouvez également modifier la destination de récupération des fichiers à cette étape, par exemple. Cela peut être utile en cas de perte d'un client.
Run Backup job
JobName: RemoteBackup
Level: Full
Client: Ubuntu-Client-fd
FileSet: RemoteFS
Pool: RemotePool (From Job resource)
Storage: LocalSD (From Job resource)
...Pour afficher les informations sur les tâches planifiées, en cours d'exécution et terminées, saisissez « status » puis « 1 ».
Pour restaurer les données, entrez la commande « restaurer » dans la bconsole et suivez les instructions.
Conclusion
Dans ce tutoriel, nous avons configuré des sauvegardes de clients distants à l'aide de Bacula sur Ubuntu 20.04. En installant et en configurant le démon de fichiers Bacula (FD) sur la machine cliente et en l'enregistrant correctement sur le serveur Bacula, nous avons mis en place un flux de sauvegarde fiable et automatisé. La conception modulaire de Bacula offre flexibilité et évolutivité, ce qui le rend idéal pour les stratégies de sauvegarde d'entreprise. Des sauvegardes régulières et un chemin de restauration clair contribuent à protéger vos données contre les pertes accidentelles ou les pannes système.
QFP
- Q : Puis-je sauvegarder plusieurs clients distants en utilisant le même serveur Bacula ?
R : Oui, Bacula est conçu pour gérer plusieurs clients. Il suffit de créer des blocs de configuration distincts (Client, Job, FileSet, etc.) pour chaque machine. - Q : La machine cliente a-t-elle besoin d’une adresse IP statique ?
R : Il est recommandé d'utiliser une IP statique ou une DNS nom pour assurer une connectivité cohérente entre le serveur et le client. - Q : Que se passe-t-il si la tâche de sauvegarde échoue ?
R : Vous pouvez consulter les journaux des tâches via bconsole à l'aide des commandes status ou messages pour résoudre les problèmes. Vérifiez la connectivité, les incompatibilités de mot de passe et la syntaxe de configuration. - Q : Puis-je planifier des sauvegardes incrémentielles ou différentielles au lieu de sauvegardes complètes ?
R : Oui, Bacula prend en charge plusieurs niveaux de sauvegarde. Vous pouvez modifier le paramètre Niveau dans la définition de tâche : Incrémental, Différentiel ou Complet. - Q : Est-il sûr de restaurer les fichiers directement à l’emplacement d’origine ?
R : Bien que cela soit possible, il est plus sûr de restaurer d'abord dans un répertoire séparé comme /opt/restore pour vérifier les données avant d'écraser quoi que ce soit.
700
300
700
300
700
300