I keep a local mirror of everything that is updated nightly using
rsync to a case sensitive volume that is rotated monthly.
I also backup all my MySQL databases nightly. With my databases I keep 7 different versions of backups in case one of them gets corrupt.
Also my host does backups but due to my own backups I've never had to ask them to restore anything.