{"id":79,"date":"2011-05-31T10:55:47","date_gmt":"2011-05-31T08:55:47","guid":{"rendered":"http:\/\/blog.gocept.com\/?p=79"},"modified":"2012-12-03T15:12:05","modified_gmt":"2012-12-03T14:12:05","slug":"rrdtool-restore-and-merge-from-backup","status":"publish","type":"post","link":"https:\/\/blog.gocept.com\/2011\/05\/31\/rrdtool-restore-and-merge-from-backup\/","title":{"rendered":"rrdtool restore and merge from backup"},"content":{"rendered":"

We recently had an issue with our backup server which was also running Nagios including pnp4nagios to gather performance data.<\/p>\n

We quickly started to deploy a new Nagios server which started gathering statistics again right away.<\/p>\n

After pulling the historical RRD databases from the backup we discovered no easy way to integrate the both datasets. After fiddling with some tools we extended an existing script that can be used to integrate different RRD sources into a single file to match our use case.<\/p>\n

The resulting script simply replaces all “null” data rows in the new database that the old database has data available for. A second script provides the ability to merge whole directory trees of RRDs.<\/p>\n

The script can be found in the rrdmerge bitbucket repository<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"

We recently had an issue with our backup server which was also running Nagios including pnp4nagios to gather performance data. We quickly started to deploy a new Nagios server which started gathering statistics again right away. After pulling the historical RRD databases from the backup we discovered no easy way to integrate the both datasets. … Continue reading “rrdtool restore and merge from backup”<\/span><\/a><\/p>\n","protected":false},"author":12391367,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[10221],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pFP3y-1h","jetpack-related-posts":[{"id":1433,"url":"https:\/\/blog.gocept.com\/2014\/08\/04\/september-18th-20th-devops-sprint\/","url_meta":{"origin":79,"position":0},"title":"September, 18th\u201320th: DevOps Sprint","author":"Daniel Havlik","date":"August 4, 2014","format":false,"excerpt":"Since we have a strong history in web development, but also were involved in operating web applications we developed, the DevOps movement hit our nerves.Under the brand name \"Flying Circus\" we are establishing a platform respecting the DevOps principles.A large portion of our day-to-day work is dedicated to DevOps related\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1327,"url":"https:\/\/blog.gocept.com\/2013\/07\/09\/monitoringlove-sprint-takeaway\/","url_meta":{"origin":79,"position":1},"title":"#monitoringlove sprint takeaway","author":"Daniel Havlik","date":"July 9, 2013","format":false,"excerpt":"A few weeks ago I co-organised and participated in a #monitoringlove sprint in Berlin. My personal plan was to play with more modern utilities that can potentially replace our existing Nagios monitoring chain. The result of what I think would be a good setup would probably look like this: Most\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2013\/07\/monitoringlove2.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":74,"url":"https:\/\/blog.gocept.com\/2011\/05\/04\/how-to-undo-a-transaction-with-the-zodb\/","url_meta":{"origin":79,"position":2},"title":"How-To: Undo a transaction with the ZODB","author":"","date":"May 4, 2011","format":false,"excerpt":"Suppose you've written a script to \"fix something real quick\" and unleashed it upon your live database. Five minutes later, you discover your script had a bug, and now you've wrecked quite a bit of production data. Ouch. You might be lucky, though, since the ZODB offers transaction-level undo. This\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1489,"url":"https:\/\/blog.gocept.com\/2014\/12\/19\/making-ci-results-visible-at-home\/","url_meta":{"origin":79,"position":3},"title":"Making CI results visible at Home","author":"","date":"December 19, 2014","format":false,"excerpt":"We are using a Jenkins server to test our projects continuously. To make the results clearly visible, my colleagues installed a Raspberry Pi to display the testing results on a huge LED strip. As you see in the picture below, the project results are displayed on both sides of the\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"Remote LED with a Sword-like shape","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2014\/12\/jenkins-sword.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2014\/12\/jenkins-sword.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2014\/12\/jenkins-sword.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2014\/12\/jenkins-sword.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1437,"url":"https:\/\/blog.gocept.com\/2014\/07\/03\/follow-up-actions-after-the-filesystem-corruption-incident\/","url_meta":{"origin":79,"position":4},"title":"Follow up actions after the filesystem corruption incident","author":"","date":"July 3, 2014","format":false,"excerpt":"On 2014-06-07, the Flying Circus experienced a quite unfortunate filesystem corruption\u00a0incident. Most of the VMs have been cleaned up since then, but a few defective files are still around. In the following article, I'll provide some background information on what types of corruption we saw, what you (as our customer)\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3350,"url":"https:\/\/blog.gocept.com\/2019\/11\/13\/union-cms-released-on-python-3\/","url_meta":{"origin":79,"position":5},"title":"union.cms released on Python 3","author":"Michael Howitz","date":"November 13, 2019","format":false,"excerpt":"union.cms is a content management system which was once developed on Zope 2. It was one of the early adopters of the Five technology aka using Zope 3 components in Zope 2. Now it is one of the proud early adopters of Zope 4 on Python 3. It is used\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"Green tree python","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/11\/green-tree-python-1312700.jpg?fit=1200%2C863&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/11\/green-tree-python-1312700.jpg?fit=1200%2C863&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/11\/green-tree-python-1312700.jpg?fit=1200%2C863&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/11\/green-tree-python-1312700.jpg?fit=1200%2C863&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/11\/green-tree-python-1312700.jpg?fit=1200%2C863&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/79"}],"collection":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/users\/12391367"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":4,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/79\/revisions"}],"predecessor-version":[{"id":340,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/79\/revisions\/340"}],"wp:attachment":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/media?parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/categories?post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/tags?post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}