{"id":306,"date":"2009-04-21T23:27:09","date_gmt":"2009-04-21T23:27:09","guid":{"rendered":"http:\/\/blog.cyberwizzard.nl\/?p=306"},"modified":"2016-03-17T21:23:39","modified_gmt":"2016-03-17T20:23:39","slug":"release-of-new-utility-bacula-reports-09","status":"publish","type":"post","link":"https:\/\/blog.cyberwizzard.nl\/?p=306","title":{"rendered":"Release of new utility: Bacula Reports 0.9"},"content":{"rendered":"<p>I write a lot of code, most of it unsuitable for release to the public but this little gem is worth a public release.<\/p>\n<p>After using <a target=\"_blank\" href=\"http:\/\/www.bacula.org\">Bacula<\/a> to backup all my servers (both Windows and Linux) for some time, the large number of mailings you get when using it on a small server park drove me insane. Even when using filters to sort out new mail, it is hard to see if everything is going as it should be.<\/p>\n<p>Enter Bacula Reports: a mail aggregator for Bacula 2.x and 3.x.<\/p>\n<p>Bacula Reports consists of a faux mail command (which does not send out reports by mail but rather analyses and stores them) and a report generator which aggregates all the stored reports into one mailing with an overview and some HTML styling to make it more readable (if you don&#8217;t want HTML, modify the template to generate plain text).<\/p>\n<p>By integrating the scripts into the Bacula configuration at 2 points (a mail command used for sending out reports and a job to send out the combined report), the storm of daily mails changes into one neat report at the end of the backup cycle.<\/p>\n<p>Normal error messages and operator messages are unaffected and will be delivered as they used to be, only the backup reports per job are redirected to Bacula Reports.<\/p>\n<p>Requirements:<\/p>\n<ul>\n<li>A linux server (32 or 64 bit, tested on CentOS 5.2 and Gentoo 2008)<\/li>\n<li>A working Bacula 2.x or 3.x installation<\/li>\n<li>PHP as a command line interpreter (run &lsquo;php &ndash;v&rsquo; to see if you have it)<\/li>\n<li>10 minutes of your time to set everything up<\/li>\n<\/ul>\n<p>The cool thing of the scripts is that they require only 2 small changes in the director configuration to reroute the status mailings and if you don&rsquo;t like it or run into trouble, reverting is normally a matter of simply commenting out the modified lines and restoring the old ones.<\/p>\n<p>One drawback for some people: it requires PHP on the command line (as stated before). The reason for this is very simple: I want to use the same code in the future for a web GUI and my unix-scripting skills are virtually non-existing compared to PHP or Java.<\/p>\n<p>Even though its PHP, the scripts have a small footprint and run very fast &ndash; they should be easy to add to any existing Bacula environment.<\/p>\n<p> {jd_file file==5} {jd_file file==6}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I write a lot of code, most of it unsuitable for release to the public but this little gem is worth a public release. After using Bacula to backup all my servers (both Windows and Linux) for some time, the large number of mailings you get when using it on a small server park drove [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[65,58,330,112,459,329,328,332,42,154,331],"class_list":["post-306","post","type-post","status-publish","format-standard","hentry","category-programming","tag-after","tag-but","tag-gem","tag-little","tag-not_ok","tag-public","tag-release","tag-ter","tag-the","tag-this","tag-worth"],"views":4870,"_links":{"self":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=306"}],"version-history":[{"count":1,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/306\/revisions"}],"predecessor-version":[{"id":428,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/306\/revisions\/428"}],"wp:attachment":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}