As I use your plugin practically daily and also have experience with design, I took the liberty of thinking a little about how I would go about solving what I think is the plugin’s most serious defect currently: scheduling and cleaning management of backups.
In this other feature request (https://updraftplus.com/feature-requests/request/backup-retention-limits-rules-to-save-space-and-delete-old-backups/) I had already addressed this problem, but looking at it now, I think a more robust solution would be welcome.
Therefore, here is a detailed explanation of what I imagine would be an approach that would add a lot of value to the plugin as it would empower users to create elaborate and personalized rules.
Context
On a basic institutional site, there’s no need to keep a long history of backups, so it makes sense that backups older than a few months are automatically deleted.
In addition, some sites have space limits on hosting. A 1gb website on a 10gb shared hosting can accidentally take up all available space and jeopardize new backups.
Currently there are already retention rules for scheduled backups, but they do not cover manual or automatic backups. Also, I think the retention rules are a bit confusing the way they are defined today.
There is also an issue involving the remote storage of backups. It’s possible that I want to limit local backups, but have different limits for remote storages (after all, I might have more free space to keep an archive).
At the same time, different websites may need different automatic backup rules. Some need it very often, others less. Some may always want a full backup, others just want to backup the uploads and database.
Solution proposal
Remove the current backup scheduling/retention functionality and create a new, more elaborate feature that is based on backup scheduling and cleaning scheduling rules.
What would need to be done
- Add an option to “lock” already created backups. This way, it would be possible to prevent an automatically created backup or an old but important backup from being automatically deleted.
- Remove the “Files backup schedule” and “Database backup schedule” options that currently exist in “Settings”
- Create a new “Scheduling” tab with the aim of organizing and increasing backup and cleaning scheduling settings.
- This new tab would have two sections “Backup scheduling” and “Cleaning scheduling”
- Scheduling rules would be listed in each section with some columns of information and edit and delete buttons
- Rule management, in terms of usability, could work in a similar way to listing existing backups. The user could select rules, remove them, etc.
- A feature that could be useful is the option to export/import rules through a JSON file, for example.
Backup scheduling
In this section, the user can create scheduling rules to automate the backup process for their websites. Including the creation of specific rules for each type of content, including frequency and retention settings.
When adding a Backup schedule the user can configure:
- Choosing between a full or incremental backup
- The schedule, which can be every X hours, daily, weekly, fortnightly or monthly
- The content, selecting between database and files, with each file type detailed
- The storage, deciding whether this backup will be sent to remote storage
- A basic retention rule and an option to “lock” the backup against cleanup rules.
This configuration would be very similar to the functionality that already exists. The big difference is that the user can create several rules simultaneously. For example, if desired, it can make a full database backup daily uploaded to remote storage while also making an incremental backup of the uploads stored only locally.
Cleaning scheduling
In this section, the user can create rules to delete old backups, giving them more control over the space occupied by their backups.
When adding a Cleaning schedule the user can configure:
- The type of limit: can be a space limit or a time limit
- In the case of space limit, the user can enter a value in mb as a limit
- In the case of a time limit, the user defines a value in days or months
- When existing backups that meet the rules below exceed the limit described above, UpdraftPlus should automatically remove the OLDER backups until they meet the limit.
- There would also be rules for which content and backup types would be affected
- The content type would select between database, plugins, themes, etc. E.g.: if the user only checks “Uploads” and a limit of 1000mb, when the non-blocked “uploads” backups reach the limit, the oldest ones would be removed.
- The type of backups considers whether the backups are manual, scheduled or automatic. For example: if the user selects only “automatic”, the rule will exclude only automatic backups, ignoring the others.
- Finally, you can also choose whether the backup will be removed from remote storage.
The advantages of this new organization
The user has much greater fine control over backups. They can, if they wants, make combinations like:
- An incremental daily backup of just the Uploads that will be sent to a remote server while making a full backup of the other files weekly only locally
- A daily backup of the database that is never removed while a weekly backup of files that cannot exceed 10 GB.
- A weekly backup sent to Amazon S3 that cannot exceed 10 GB at the same time as a monthly backup sent to Dropbox that cannot exceed 5 GB.
- Among many other combination possibilities…
This fine control is great for site and hosting managers. New cleaning rules allow the manager to stop worrying about the size of automatic backups. Also, the expected behavior of scheduled backups is much clearer.
Exporting/importing rules can greatly facilitate the work of managers who manage many websites
The feature is more evident to the user, which is something that can be commercially explored by UpdraftPlus, generating more perceived value for the user.
I hope this contribution is welcome and I am available to clarify any questions.
Related requests
Finally, I put together a list of similar requests that can be fully or partially resolved with this approach I described:
- Backup retention limits rules to save space and delete old backups – https://updraftplus.com/feature-requests/request/backup-retention-limits-rules-to-save-space-and-delete-old-backups/
- Retention limits need to be a priority for automatic backups – https://updraftplus.com/forums/topic/retention-limits-need-to-be-a-priority-for-automatic-backups/
- Retention and removal of old backups – https://updraftplus.com/forums/topic/retention-and-removal-of-old-backups/
- More fine grained control of backups schudules – https://updraftplus.com/feature-requests/request/more-fine-grained-control-of-backups-schudules/
- possibility to retain all remote backups – https://updraftplus.com/feature-requests/request/possibility-to-retain-all-remote-backups/
- Recommended Backup Schedules and/or Schedule templates – https://updraftplus.com/feature-requests/request/recommended-backup-schedules-and-or-schedule-templates-2/
- Ability to select specific backup type (theme, uploads, core, etc) – https://updraftplus.com/feature-requests/request/ability-to-select-specific-backup-type-theme-uploads-core-etc/
- Different Backup Schedules & Retention Settings for Different Storage Types – https://updraftplus.com/feature-requests/request/different-backup-schedules-retention-settings-for-different-storage-types/
- Retention Settings and Automatic Backups – https://updraftplus.com/feature-requests/request/retention-settings-and-automatic-backups/
- Add a RETENTION RULE specific for remote storage… – https://updraftplus.com/feature-requests/request/add-a-retention-rule-specific-for-remote-storage/
- Allow uploads to be scheduled separately from other file backups – https://updraftplus.com/feature-requests/request/allow-uploads-to-be-scheduled-separately-from-other-file-backups/
- Different retention limit for remote storage – https://updraftplus.com/feature-requests/request/different-retention-limit-for-remote-storage/
- Different Backup Schedules Depending on Repository – https://updraftplus.com/feature-requests/request/different-backup-schedules-depending-on-repository/
- Number of backups to keep on site vs remote storage – https://updraftplus.com/feature-requests/request/number-of-backups-to-keep-on-site-vs-remote-storage/
- Custom Schedules – https://updraftplus.com/feature-requests/request/custom-schedules/
- Hourly db backups – https://updraftplus.com/feature-requests/request/hourly-db-backups/