About a year and a half ago, two very unfortunate incidents hampered my productivity and occurred within the space of one month:
- Just after migrating web host — while I was temporarily bereft of hosting backups — my shared hosting account was targeted by a virulent form of Russian WordPress malware called Baba Yaga (yes, that’s its real name, and WordFence have put together an excellent white paper dissecting it here). This resulted in two mostly sleepless weeks attempting to debug a network of 20 infected websites down to the MySQL level. Many, unfortunately,had to be reconstructed manually. Very little writing or actual work got done during that period.
- An attempt to upgrade from an LTS version of Ubuntu to the latest release bricked my system — and over-zealous use of the fcsk command then bricked the SSD it had been running on. I was down for another two days or so as I was forced to built my desktop back from scratch on a new storage medium.
This painful experience — which cost far more in lost time than the price of a new SSD — taught me to take backups very seriously. And I set as an objective for myself that that unplanned reinstallation of Ubuntu would be the very last one I ever did.
Thankfully, my system has been up ever since, which puts me at about 18 months of uptime.
My backup strategy is a work in progress, but — in case anybody finds it of use or of interest — this is what has served me in the period since.
The 3–2–1 Backup Rule
The overarching objective for my backup strategy (besides, keeping my system up and stable) is now to adhere to the 3–2–1 backup rule.
This states that:
- You should keep three copies of your data. Which I actually find a little misleading because that means your primary data source plus two backups.
- The two copies should be kept on different devices or storage media. For instance: an external hard drive and an AWS bucket.
- At least one of these copies should be stored offsite.
I aim to ensure that this process exists for all my data sources.
Currently these include:
- My desktop, which consists of my Linux drive (Ubuntu + LXQt) and my very infrequently accessed Windows drive. Backing up these as whole drives obviously captures all virtual machines (VMs) stored on the drives — but not drives which are temporarily mounted such as my primary cloud storage. Obviously, if you have various OSes on separate partitions rather than separate drives the process is a little more simple.
- My cloud storage: which consists of my primary cloud storage account.
- Data from the various cloud services that I use.
- My web hosting.
At the moment, only my desktop meets the strict criteria, so the others (namely, my cloud infrastructure) are themselves a work in progress.
Desktop Backup 1: Timeshift SSD (on-site, daily)
Daniel publishes a monthly 📥 e-newsletter 📥 summarizing his latest articles, writing, and thinking. To receive it, click here.
Daniel Rosehill is a technology writer and marketing communications (MarCom) professional based in Jerusalem. Originally from Cork, in Ireland, Daniel’s diverse set of interests include Linux and open source technology; backups and disaster recovery (and naturally, digital prepping); and language-learning and travelling.