How do you handle removing old copies on S3?
At present, I haven't, as I'm waiting to see whether WHM backup removes them when it removes files in the backup directory. Otherwise, I guess just manually in the S3 container or I will investigate an automated solution. I only just shifted from ServInt to Linode, managed to self managed... so still testing some solutions for myself.
My hosting provider has had backups not work and the full server backup is pretty much useless as you have to restore whole server.
Yer, I had the same issue with ServInt in the past with needed backups. When i needed them, they had failed at their end.
I'm with Linode now, so needing the entire servers files really isn't an issue, as you can deploy a linux version and WHM within 30 15 minutes, then you just have to restore the server settings backup, then each account. But you can do all that in one sitting. So within an hour or two, have the entire server restored if a catastrophic SSD failure occurred.
If you really want, you can just install everything in a clean environment, all your additions and modules, everything but the accounts, clone the entire thing and let it sit on the smallest deployment version, which is $10 a month. I have thought about doing that, cloning my current setup, removing all the accounts, and just let it sit with an inactive WHM as an entire server copy. The more I think about that, writing this, I think I'm going to do just that...
Can you restore individual files from the WHM backup?
No, your options are everything,
OR, just the files as you can uncheck the DB, mail and sub-domains reinstalling... so you don't lose new db content.
I just did this with a nothing account to verify... and it worked as above. It restored the mysql user and permissions, but didn't touch the db itself. I made a change in the db to verify after restore, and it remained. So if your files needed to be restored, easy done.