{"id":435,"date":"2016-12-25T13:20:16","date_gmt":"2016-12-25T12:20:16","guid":{"rendered":"https:\/\/blog.unetresgrossebite.com\/?p=435"},"modified":"2016-12-31T04:35:54","modified_gmt":"2016-12-31T03:35:54","slug":"bacula","status":"publish","type":"post","link":"https:\/\/blog.unetresgrossebite.com\/?p=435","title":{"rendered":"Bacula"},"content":{"rendered":"<p>Bacula is a pretty complete backup solution, written in C++, based on three main daemons\u00a0(file, storage, director) allowing to schedule jobs and restore backups from a given point in time.<\/p>\n<div id=\"attachment_438\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-archi.jpg\"><img aria-describedby=\"caption-attachment-438\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-438\" src=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-archi-300x196.jpg\" alt=\"Bacula agents\" width=\"300\" height=\"196\" srcset=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-archi-300x196.jpg 300w, https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-archi.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-438\" class=\"wp-caption-text\">Bacula agents<\/p><\/div>\n<p>The\u00a0director service is in charge of orchestrating all operations (start a backup, start a restore, &#8230;) and would store its indexes into some\u00a0RDBMS (MySQL, PostgreSQL or SQLite). This is where we would be defining our retention policy and schedule our jobs. Bacula also provides\u00a0with a Console client &#8211; as well as various graphical alternatives &#8211; that will connect to your director, allowing you to restore files, check for jobs and processes statuses, logs, &#8230;<\/p>\n<p>The storage service is in charge of storing and serving backups. Nowadays mostly used with regular drives, NFS or LUN devices, yet can still be configured working with\u00a0tapes.<\/p>\n<div id=\"attachment_441\" style=\"width: 216px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/backups-utgb.png\"><img aria-describedby=\"caption-attachment-441\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-441\" src=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/backups-utgb-206x300.png\" alt=\"slack-notify\" width=\"206\" height=\"300\" srcset=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/backups-utgb-206x300.png 206w, https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/backups-utgb.png 425w\" sizes=\"(max-width: 206px) 100vw, 206px\" \/><\/a><p id=\"caption-attachment-441\" class=\"wp-caption-text\">slack-notify<\/p><\/div>\n<p>The file\u00a0service is to be installed on all the servers you intend to backup. Upon director request, it would be in charge of collecting and compressing (if configured to do so) the data you&#8217;re backing up, before sending it to your storage service.<\/p>\n<p>Backup jobs may be of type Full (backup everything), Differential\u00a0(capturing changes since last Full backup) or Incremental\u00a0(capturing changes since last Full, Differential or Incremental backup), which should allow you to minimize\u00a0disk space usage.<\/p>\n<p>Assuming you can externalize your older backup volumes to off-line disks from time to time, there is no limit to your retention.<\/p>\n<div id=\"attachment_442\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard.png\"><img aria-describedby=\"caption-attachment-442\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-442\" src=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard-300x121.png\" alt=\"bacula-dashboard\" width=\"300\" height=\"121\" srcset=\"https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard-300x121.png 300w, https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard-768x310.png 768w, https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard-1024x413.png 1024w, https:\/\/blog.unetresgrossebite.com\/wp-content\/uploads\/2016\/12\/bacula-dashboard.png 1235w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-442\" class=\"wp-caption-text\">bacula-dashboard<\/p><\/div>\n<p>Jobs definition may include running commands prior to or after having run your backup, you may also define\u00a0commands to be run upon failed backup, &#8230; director can be configured to limit how much simultaneous jobs should be running, the last versions of bacula also include bandwidth limitations. All in all, making Bacula a very complete and scalable solution.<\/p>\n<p>Bacula wiki lists several <a href=\"http:\/\/wiki.bacula.org\/doku.php?id=3rd_party_addons\">graphical clients<\/a>\u00a0supervising your backups. As of right now, I preferred sticking to a read-only dashboard, installed on my director instance, with bacula-web\u00a0(PHP\/gd).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bacula is a pretty complete backup solution, written in C++, based on three main daemons\u00a0(file, storage, director) allowing to schedule jobs and restore backups from a given point in time. The\u00a0director service is in charge of orchestrating all operations (start a backup, start a restore, &#8230;) and would store its indexes into some\u00a0RDBMS (MySQL, PostgreSQL [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,10,2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/435"}],"collection":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=435"}],"version-history":[{"count":5,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/435\/revisions"}],"predecessor-version":[{"id":444,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/435\/revisions\/444"}],"wp:attachment":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}