{"id":372,"date":"2024-12-19T15:54:32","date_gmt":"2024-12-19T21:54:32","guid":{"rendered":"https:\/\/bblaze.xyz\/?p=372"},"modified":"2025-12-08T16:06:46","modified_gmt":"2025-12-08T22:06:46","slug":"virtualmin-scheduled-backups-to-s3-bucket","status":"publish","type":"post","link":"https:\/\/jb03.com\/index.php\/2024\/12\/19\/virtualmin-scheduled-backups-to-s3-bucket\/","title":{"rendered":"Virtualmin Scheduled Backups to S3 Bucket"},"content":{"rendered":"\n<p>Moving on from our previous post where we set up an objective storage, S3, bucket at Linode\/Akamai\u2026<\/p>\n\n\n\n<p>Now we are ready to schedule backups of our Virtualmin server into the bucket.<\/p>\n\n\n\n<p>The first thing we need to do is to add the S3 account to Virtualmin.<\/p>\n\n\n\n<p>From the left menu select Backup and Restore \u2013> S3 Accounts. Go ahead and click the button to add a new S3 account.<\/p>\n\n\n\n<p>On this page you will enter the API key information you saved while setting up the S3 bucket.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"467\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-01-1024x467.png\" alt=\"\" class=\"wp-image-380\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-01-1024x467.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-01-300x137.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-01-768x351.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-01.png 1472w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>After you click the Create button, in the menu, click on S3 Buckets.<\/p>\n\n\n\n<p>If everything is working properly, you should now see the bucket that was created in the previous step.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"222\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/schedule-02-1024x222.png\" alt=\"\" class=\"wp-image-381\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/schedule-02-1024x222.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/schedule-02-300x65.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/schedule-02-768x166.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/schedule-02.png 1321w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Beware that you do <strong>NOT<\/strong> need to click on the bucket name. You only need to observe that Virtualmin has located the bucket.<\/p>\n\n\n\n<p>Now we are ready to set up our schedule the backups.<\/p>\n\n\n\n<p>In the menu click on Scheduled Backups. Then go ahead and click on the &#8220;Add a new backup schedule&#8221; button.<\/p>\n\n\n\n<p>Enter a backup description. Beyond that, the default options will serve you well.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-03-1024x511.png\" alt=\"\" class=\"wp-image-382\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-03-1024x511.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-03-300x150.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-03-768x383.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-03.png 1490w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Click on features and settings to expand that area.<\/p>\n\n\n\n<p>In addition to backing up all of the websites hosted on your server, you probably want to backup all of the Virtualmin settings as well. So select them.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"431\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-04-1024x431.png\" alt=\"\" class=\"wp-image-383\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-04-1024x431.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-04-300x126.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-04-768x323.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-04.png 1321w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Now click on destination and format to expand that area.<\/p>\n\n\n\n<p>From the backup destinations drop-down box select S3 bucket.<\/p>\n\n\n\n<p>The S3 account should be populated for you. If you have multiple S3 accounts choose the correct one.<\/p>\n\n\n\n<p>The bucket and path field should start with the name of the bucket you created earlier followed by a &#8220;\/&#8221;, then a directory which will be created by Virtualmin.<\/p>\n\n\n\n<p>You will note in the example below, the path will accept all standard Linux time escaped values.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"407\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-05-1024x407.png\" alt=\"\" class=\"wp-image-384\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-05-1024x407.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-05-300x119.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-05-768x305.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-05.png 1324w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Probably a good idea to select the radio button &#8220;Yes&#8221; and then enter a number of days after which Virtualmin should automatically delete old backups.<\/p>\n\n\n\n<p>Last stop. Click on schedule and reporting to expand that section.<\/p>\n\n\n\n<p>Under &#8220;Scheduled backup time&#8221; choose the appropriate radio button. &#8220;Disabled&#8221; essentially means &#8220;manual&#8221;. You can run the backup with the same settings whenever you wish. But you have to do it manually. I&#8217;ve selected to have the backup run daily at midnight. So I clicked the &#8220;Simple schedule&#8221; radio button and selected Daily from the drop-down box. You should select whatever options best meet your needs.<\/p>\n\n\n\n<p>I didn&#8217;t enter an email in this example, but in production I always want Virtualmin to send me an email in the event of failure. So I would also click the appropriate checkbox.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"280\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-06-1024x280.png\" alt=\"\" class=\"wp-image-386\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-06-1024x280.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-06-300x82.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-06-768x210.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-06.png 1300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>I think were ready to go and then click the Create Schedule button.<\/p>\n\n\n\n<p>Nice work. Now you should be looking at a list of all the scheduled backups. Probably looks like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"186\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07-1024x186.png\" alt=\"\" class=\"wp-image-387\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07-1024x186.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07-300x54.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07-768x139.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07-1536x279.png 1536w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-07.png 1576w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Virtualmin will automatically run this backup every day at midnight.<\/p>\n\n\n\n<p>But you can run anytime by clicking the backup button in the row, under Actions, on the right-hand side.<\/p>\n\n\n\n<p>After you run a backup, you should be able to see the files Virtualmin uploaded inside the bucket.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"483\" src=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-08-1024x483.png\" alt=\"\" class=\"wp-image-388\" srcset=\"https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-08-1024x483.png 1024w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-08-300x142.png 300w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-08-768x362.png 768w, https:\/\/jb03.com\/wp-content\/uploads\/2024\/12\/scheduled-08.png 1306w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>That&#8217;s it.<\/p>\n\n\n\n<p>Your Virtualmin will now automatically backed up all of your domains every day at midnight.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moving on from our previous post where we set up an objective storage, S3, bucket at &hellip; <a title=\"Virtualmin Scheduled Backups to S3 Bucket\" class=\"hm-read-more\" href=\"https:\/\/jb03.com\/index.php\/2024\/12\/19\/virtualmin-scheduled-backups-to-s3-bucket\/\"><span class=\"screen-reader-text\">Virtualmin Scheduled Backups to S3 Bucket<\/span>Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,41],"tags":[],"class_list":["post-372","post","type-post","status-publish","format-standard","hentry","category-getting-started","category-virtualmin"],"_links":{"self":[{"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/posts\/372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/comments?post=372"}],"version-history":[{"count":1,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/posts\/372\/revisions"}],"predecessor-version":[{"id":639,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/posts\/372\/revisions\/639"}],"wp:attachment":[{"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/media?parent=372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/categories?post=372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jb03.com\/index.php\/wp-json\/wp\/v2\/tags?post=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}