My fundamental rule is that any backup set I make must let me to install a clean system from scratch, without losing any data, by recreating everything. Bonus points for preserving settings of frequently used programs. From top of my head, these are the most important things I do when thinking about backups.
- Separate backup frequencies and retention periods according to the data. Work documents got a daily backup but family photos only a weekly copy, if not less (they change much less often).
- For every single program I use I create a backup of the installer or a clean .rar file for portables. This set of installers is backed up from time to time.
- Most files get backed up in .rar files, except multimedia which gets copied right away (poor compression) and the installer of WinRar obviously is not in .rar.
- My first backup drive is an internal spinner which contain the most up-to-date copies of everything.
- The second device is a external hard disk that gets updated daily or so.
- A third copy of some files is uploaded to my account on Mega though FTP. This is also encrypted before uploading.
- This whole process is fully automated, everything is backed up even without my intervention. Manual, ad-hoc extra backups are of course possible for emergencies.
- My backup program of choice (Cobian Reflector here) runs under a dedicated user account as a service. This account has read access to everything that needs to be copied, and is the only account (besides admins) with write access to the backup drives, thus getting UAC protection.
- Retention periods go from a month to a year for infrequently updated copies.
- I still do full backups of everything, as I personally don't like too much the extra complexity of differentials or incrementals. Maybe some day.......
I try to implement the pull model as much as possible, which is hardly at all possible within a single computer, but I think using a dedicated account goes lot of the way. Otherwise I like the backups to be unattended and fully automatic, with a notification when a backup failed for any reason. I also cycle the copies from the most local thing (just a dedicated internal disk) to an external one, then to a cloud drive out there, each with different frequencies.
For example, suppose I delete something important and synch happened so effectively I have no backup.
Wht OneDrive does by default is a sync, also called a mirror, which is NOT meant for a backup purpose, precisely for the reason you name: mistakes on the live data also happen in the "backup". This system only serves for hardware failure if you lose access to your drive, but the real intention of OneDrive is to distribute your files among many systems.
For backup purposes it's better to implement a rotation of a few copies at least.
I also do a backup validation which is a single line command in a Linux subsystem for Windows
I wonder what single command can verify that your backups are working as intended? At most I imagine that it can verify integrity, but what do you exactly do here?