{"id":64066,"date":"2022-05-03T09:00:57","date_gmt":"2022-05-03T09:00:57","guid":{"rendered":"https:\/\/www.cryptocabaret.com\/?p=64066"},"modified":"2022-05-03T09:00:57","modified_gmt":"2022-05-03T09:00:57","slug":"how-i-use-the-bacula-gui-for-backup-and-recovery","status":"publish","type":"post","link":"https:\/\/www.cryptocabaret.com\/?p=64066","title":{"rendered":"How I use the Bacula GUI for backup and recovery"},"content":{"rendered":"<p><span class=\"field field--name-title field--type-string field--label-hidden\">How I use the Bacula GUI for backup and recovery<\/span><br \/>\n<span class=\"field field--name-uid field--type-entity-reference field--label-hidden\"><a title=\"View user profile.\" href=\"https:\/\/opensource.com\/users\/robmorrison\" class=\"username\">Rob Morrison<\/a><\/span><br \/>\n<span class=\"field field--name-created field--type-created field--label-hidden\">Tue, 05\/03\/2022 &#8211; 03:00<\/span><\/p>\n<div data-drupal-selector=\"rate-node-69991\" class=\"rate-widget-thumbs-up\" title=\"Register or Login to like.\">\n<div class=\"rate-thumbs-up-btn-up vote-pending\">1 reader likes this<\/div>\n<div class=\"rate-score\">1 reader likes this<\/div>\n<\/div>\n<div class=\"clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item\">\n<p>Today, when best practices for backup and recovery are more important than ever before, it&#8217;s good to know that high-end fully open source enterprise backup solutions exist for even the largest organizations. Perhaps the most powerful open source solution in its class is Bacula, a highly scalable software for backup, recovery, and data verification. It is a mature yet still significantly developing project used by MSPs, defense organizations, ISVs, and e-commerce companies worldwide and runs on many different Linux flavors. Bacula has a thriving community, and many Linux enthusiasts use it to provide a strong level of data protection.<\/p>\n<p>With the many severe disruptions that ransomware causes today, it&#8217;s critical that the client system being backed up is never aware of storage targets and has no credentials for accessing them. This is true in Bacula&#8217;s case, and in addition:<\/p>\n<ul>\n<li>Storage and Storage Deamon hosts are dedicated systems, strictly secured, allowing only Bacula-related traffic and admin access and nothing else.<\/li>\n<li>Bacula&#8217;s &#8220;Director&#8221; (core management module) is a dedicated system with the same restrictive access.<\/li>\n<\/ul>\n<p>Bacula has plenty of additional configuration options to tune backups to user needs. It functions in networks and can back up both remote and local hosts. For first-time users, it can look complex, but fortunately, the Bacula Project also provides the <a href=\"https:\/\/baculum.app\/\" target=\"_blank\" rel=\"noopener\">Baculum<\/a> web interface to ease administration. Many Linux users are more than happy to rely on Bacula&#8217;s command-line interface to exploit its considerable range of capabilities, but sometimes it&#8217;s good to have an effective GUI, too. That&#8217;s where the open source Baculum comes in.<\/p>\n<\/p>\n<div class=\"embedded-resource-list callout-float-right\">\n<div class=\"field field--name-title field--type-string field--label-hidden field__item\">More Linux resources<\/div>\n<div class=\"field field--name-links field--type-link field--label-hidden field__items\">\n<div class=\"field__item\"><a href=\"https:\/\/developers.redhat.com\/cheat-sheets\/linux-commands-cheat-sheet\/?intcmp=70160000000h1jYAAQ\">Linux commands cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/developers.redhat.com\/cheat-sheets\/advanced-linux-commands\/?intcmp=70160000000h1jYAAQ\">Advanced Linux commands cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/www.redhat.com\/en\/services\/training\/rh024-red-hat-linux-technical-overview?intcmp=70160000000h1jYAAQ\">Free online course: RHEL technical overview<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/downloads\/cheat-sheet-networking?intcmp=70160000000h1jYAAQ\">Linux networking cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/downloads\/cheat-sheet-selinux?intcmp=70160000000h1jYAAQ\">SELinux cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/downloads\/linux-common-commands-cheat-sheet?intcmp=70160000000h1jYAAQ\">Linux common commands cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers?intcmp=70160000000h1jYAAQ\">What are Linux containers?<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/linux?intcmp=70160000000h1jYAAQ\">Our latest Linux articles<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<h2>Baculum<\/h2>\n<p>Baculum&#8217;s installation process is reasonably simple because its repositories provide binary packages for popular Linux distributions. After installation, you have access to two wizards:<\/p>\n<ul>\n<li>The Baculum API &#8211; a REST API component for working with Bacula data.<\/li>\n<li>The Baculum Web component &#8211; the web interface itself.<\/li>\n<\/ul>\n<p>The Baculum API is installed on hosts with Bacula components which you manage from the web interface level. Baculum Web is usually one instance that connects all Baculum API hosts and makes it possible to manage all of them. This architecture fits well with the Bacula network architecture because you can manage all Bacula hosts from one interface. It&#8217;s important to know that the web interface does not store any Bacula-specific configuration from any host but manages them by sending API requests instead. When you modify the interface or run Bacula actions, they are done in real-time. When you click on the save configuration button, the modification is done simultaneously on the targeted hosts.<\/p>\n<p>Below is a sample Bacula and Baculum topology.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/1baculumAPI.png\" width=\"656\" height=\"666\" alt=\"Baculum API\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>One disadvantage of this approach is that you need to install one Baculum API instance on each Bacula host that you want to manage. If there are many servers to back up, it is possible to automate the installation process using an application-deployment tool like Ansible.<\/p>\n<p>In my case, I have a much simpler topology with only one host managed by Baculum. My topology looks like the one below.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/2baculumwebinterface.png\" width=\"904\" height=\"612\" alt=\"Baculum web interface topology\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>You can decide what Bacula resources to share on each Baculum API host. You can set the API hosts to do configuration work, access the Bacula catalog database, run Bacula console commands, or any combination.<\/p>\n<p>After installing the web interface in the Bacula environment, you see a dashboard page like this:<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/3dashboard.png\" width=\"904\" height=\"590\" alt=\"Baculum dashboard\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<h2>Create a backup job<\/h2>\n<p>To define a new backup job, go to the job page to see some wizards for creating backup, copy, or migrate jobs using a custom job form. For this demonstration, I chose the <strong>backup job<\/strong>, which displays the first wizard step:<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/4newBUwizard.png\" width=\"904\" height=\"554\" alt=\"New backup job wizard\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>First, type the new job name and optional description. In the second step, decide what to backup. For this example, I chose a Bacula client and FileSet, which defines the paths to be backed up. Usually, in this window, there aren&#8217;t any FileSet options to choose from yet, but you can create one with the <strong>Add new fileset<\/strong> button in the wizard. To define paths, I decided to browse the client filesystem and select paths in the drag and drop browser, as in the image below.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/5FileSet.png\" width=\"904\" height=\"560\" alt=\"Select file set\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>Once the FileSet is ready, the next step is to select where to save the backed-up data for this job. Select a storage location and a volume pool.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/6storage-and-pool.png\" width=\"904\" height=\"554\" alt=\"select storage and pool\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>As with FileSets, you have an option to create a new pool. In this example, I chose an existing volume pool.<\/p>\n<p>In the next step are job-specific options like choosing the job level (full, incremental, differential, etc.), job priority, and a few other settings.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/7job-directives.png\" width=\"904\" height=\"590\" alt=\"select job objectives\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>On the next wizard page, specify when to run this backup job. Backups are usually run periodically, and here you can choose a schedule for this job. If you don&#8217;t have a schedule, you can create it in this interface:<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/8schedule.png\" width=\"904\" height=\"590\" alt=\"Define a schedule\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>The last wizard step is just a summary of all values selected in the previous steps.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/9summary.png\" width=\"904\" height=\"696\" alt=\"job summary\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>Review all the values, and if they look correct, create the new job.<\/p>\n<h2>Run the backup<\/h2>\n<p>OK, you have a new backup job. To run the initial backup, you may choose to start it manually using the <strong>Run job<\/strong> button. There is a useful capability in the <strong>Run job<\/strong> window to estimate a job before running it. Run this estimation to know in advance how many files and how many bytes will be backed up by this job.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/10runjob.png\" width=\"904\" height=\"590\" alt=\"manually run the job\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>After running the job, you move to a job view page where you can see backup progress from the client&#8217;s perspective.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/11jobhistory.png\" width=\"904\" height=\"590\" alt=\"Job page\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>You can track job status from three places on the interface:<\/p>\n<ul>\n<li>The Bacula client (shown above).<\/li>\n<li>The Bacula director component side.<\/li>\n<li>The storage daemon perspective.<\/li>\n<\/ul>\n<p>Here you can see the job progress on the director and storage daemon side:<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/12job-from-daemon.png\" width=\"904\" height=\"560\" alt=\"job progress\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/13jobstoragedaemon.png\" width=\"904\" height=\"560\" alt=\"job progress\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>The backup job completes.<\/p>\n<h2>Restore data<\/h2>\n<p>Of course, you must be able to restore the backed-up data. Baculum provides a <strong>Restore wizard<\/strong> in the primary sidebar menu. After opening it, you see a backup client selection to which you can restore the data.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/14restorewizard.png\" width=\"904\" height=\"590\" alt=\"Restore job wizard\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>Select the client and go to the second step. Here you see all backups from that client. Your backup is at the top, so it is easy to choose. However, if you want to find a past backup, search the backups data grid. There is also an option to find a backup by filename, with or without a path.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/15selectjobtorestore.png\" width=\"904\" height=\"704\" alt=\"Select backup job\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>Select the backup and go to file selection on the third restore wizard step. Here, in the file browser, choose directories and files to restore. The browser also has an area to select a specific file version if it exists in other backups.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/16selectfilestorestore.png\" width=\"904\" height=\"596\" alt=\"Select files to restore\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>The next wizard step defines the destination where the restore will save the data. By default, the client from which the backup originates is selected, but you can change that to restore to a different host than the original. You can also define an absolute path on the client to restore the data. The media required to complete this restore is displayed. This is very useful for a backup tape device operator to prepare for the restore job. Personally, I use disk media, and my volumes are available for the storage daemon all the time.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/17selectstoragedestination.png\" width=\"904\" height=\"590\" alt=\"Select restore destination\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>The next step offers the restore options, such as replacing a policy for existing files on the filesystem or file relocation fields. I keep them untouched and go to the summary step before running the restore.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/18restoresummary.png\" width=\"904\" height=\"554\" alt=\"Restore job summary\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>In the restore job\u2014just like in the backup job\u2014you see the running restore job&#8217;s progress. After completion, there is a summary of the entire process.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/19restorehistory.png\" width=\"904\" height=\"596\" alt=\"Restore job summary details\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>That&#8217;s just about it. The backup and a restore are done. The process may be a little simpler with other tools, but Bacula offers Linux enthusiasts hundreds of very useful options. This limits how much you can simplify the interface, and most users of Bacula don&#8217;t want that.<\/p>\n<h2>Copy jobs<\/h2>\n<p>Besides doing traditional backup and restore jobs, Bacula also provides a few other job types. One of them is <strong>Copy job<\/strong>, which copies backups between storage devices from one pool of volumes to another. One storage device can be a disk, and another can be a tape or tape library. Copy job reads data from file volumes and sends it to tape devices for saving on magnetic tapes. Bacula users can configure a backup D2D2T strategy (disk-to-disk-to-tape). Source and destination storage can be of different types (disk and tape), but it works just as well when copying backup jobs between the same device types.<\/p>\n<p>Baculum has full support for copy jobs, including configuring copy jobs and ending with restoring data directly from copy jobs. Configure a copy job using the copy job wizard visible in the image below.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/20copyjobwizard.png\" width=\"904\" height=\"590\" alt=\"Copy job wizard\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>After typing the new copy job name, choose the source storage and source volume pool. This is the storage that reads data when the copy job runs.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/21copysource.png\" width=\"904\" height=\"590\" alt=\"Copy job source\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>The third wizard step specifies how to copy jobs. In other words, you can define the selection criteria used for choosing the backups that will be copied. You can select backups by patterns like:<\/p>\n<ul>\n<li>Job name<\/li>\n<li>Client<\/li>\n<li>Volume<\/li>\n<li>Smallest volume in the pool<\/li>\n<li>Oldest volume in the pool<\/li>\n<li>SQL query<\/li>\n<li>Copy all uncopied jobs so far from the pool<\/li>\n<\/ul>\n<p>In this example, I chose a selection by job name.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/22copy-files.png\" width=\"904\" height=\"560\" alt=\"Copy job selection\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>Select the destination storage and pool in the next step. This storage writes backups to the destination pool when you run the copy job.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/23copydestination.png\" width=\"904\" height=\"554\" alt=\"Copy job destination\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>In the penultimate step are a couple of options, such as the maximum number of spawned jobs. You can also set a schedule to run the copy job periodically.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/24copyoptions.png\" width=\"904\" height=\"554\" alt=\"Copy job options\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<p>After saving the wizard, run the copy job in the same place where you started the backup job. You can see the live updated job log output.<\/p>\n<article class=\"align-center media media--type-image media--view-mode-default\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/25copyhistory.png\" width=\"904\" height=\"590\" alt=\"Copy job history\" loading=\"lazy\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p>(Rob Morrison, CC BY-SA 4.0)<\/p>\n<\/div>\n<\/article>\n<h2>Wrap up<\/h2>\n<p>Done! You have performed a backup job, restored a job, and created a copy job.<\/p>\n<p>There are two Baculum functions that I think many folks will find useful.<\/p>\n<p>First, its simple interface enables the user to administer Bacula from any mobile device. This can be crucial for cases when you are outside the office and somebody from the organization sends a text message like: &#8220;Hey! I accidentally deleted an important report file and need it urgently. Are you able to restore it to my computer?&#8221; You could do this restore using a mobile phone and the same wizard steps described above.<\/p>\n<p>The second important function is its multi-user interface with several authentication methods (local user, basic authentication, LDAP, etc.). It enables company employees to use Baculum to backup and restore their own resources without requiring access to any other utilities. You can customize the role-based access control interface for each group of users.<\/p>\n<p>Of course, these options are just the tip of the iceberg regarding Bacula&#8217;s capabilities with Baculum. Baculum really is about being configurable. I hope you can enjoy its benefits and the empowerment it brings you to make your data safer and your life easier!<\/p>\n<\/div>\n<div class=\"clearfix text-formatted field field--name-field-article-subhead field--type-text-long field--label-hidden field__item\">\n<p>Baculum is an open source web application for using Bacula&#8217;s range of backup and restore jobs.<\/p>\n<\/div>\n<div class=\"field field--name-field-lead-image field--type-entity-reference field--label-hidden field__item\">\n<article class=\"media media--type-image media--view-mode-caption\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/browser_blue_text_editor_web.png\" width=\"1040\" height=\"584\" alt=\"Text editor on a browser, in blue\" title=\"Text editor on a browser, in blue\" loading=\"lazy\"><\/div>\n<\/article>\n<\/div>\n<div class=\"field field--name-field-tags field--type-entity-reference field--label-hidden field__items\">\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/linux\" hreflang=\"en\">Linux<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/tools\" hreflang=\"en\">Tools<\/a><\/div>\n<\/p><\/div>\n<div class=\"hidden field field--name-field-listicle-title field--type-string field--label-hidden field__item\">What to read next<\/div>\n<div class=\"field field--name-field-default-license field--type-list-string field--label-hidden field__item\"><a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/\"><br \/>\n        <img decoding=\"async\" alt=\"Creative Commons License\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/05\/cc-by-sa-4-2.png\" title=\"This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.\"><\/a>This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.<\/div>\n<section class=\"field field--name-field-comments field--type-comment field--label-hidden comment-wrapper\">\n<div class=\"comments__count\">\n<div class=\"login\"><a href=\"https:\/\/opensource.com\/user\/register?absolute=1\">Register<\/a> or <a href=\"https:\/\/opensource.com\/user\/login?current=\/rss.xml&amp;absolute=1\">Login<\/a> to post a comment.<\/div>\n<\/p><\/div>\n<\/section>\n<p class=\"wpematico_credit\"><small>Powered by <a href=\"http:\/\/www.wpematico.com\" target=\"_blank\" rel=\"noopener\">WPeMatico<\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How I use the Bacula GUI for backup and recovery Rob Morrison Tue, 05\/03\/2022 &#8211; 03:00 1 reader likes this 1 reader likes this Today, when best practices for backup and recovery are more important than ever before, it&#8217;s good to know that high-end fully open source enterprise backup solutions exist for even the largest [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":64067,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[307],"tags":[],"class_list":["post-64066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-open-source"],"_links":{"self":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts\/64066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=64066"}],"version-history":[{"count":0,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts\/64066\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/media\/64067"}],"wp:attachment":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}