O Linode, em particular, usa um agente personalizado no sistema operacional host para fazer backup em um nível de arquivo. (Linode faz algumas coisas iSCSI loucas com as quais a maioria de nós, meros mortais, nunca vai mexer.)
Uma solução mais amplamente usada é a meta de "instantâneo" da LVM (exemplo de revisão aqui ) que é mais ou menos bom em backups quentes. Basicamente, se você estiver usando o Logical Volume Management, você pode dizer ao sistema para fazer uma cópia de um dos seus volumes (digamos, o montado como / var) para um volume não utilizado no momento. (YMMV; caveat emptor; anula onde for proibido - em particular, você terá o problema usual de snapshot se houver uma mudança rápida dos dados)
Na verdade, devido a esse problema, bancos de dados em particular são geralmente copiados através de algum tipo de envio de log ao invés de instantâneos em um determinado momento (não sei MySQL / MariaDB tão bem, mas eu DBA Postgres e Oracle sites e é assim que sempre fazemos isso). Basicamente, seus servidores rastreiam todas as suas transações, e relatam essas informações a um servidor de backup não público, que as registra (pense em "replicação, mas com muito mais tolerância a latência"). Dessa forma, você tem mais controle sobre até que ponto precisa reverter o banco de dados do que se, digamos, tirar um instantâneo noturno (embora os DBAs sejam paranóicos o suficiente para fazer isso com frequência).
Pessoalmente, para minha máquina de desenvolvimento em casa, minha solução é apenas usar um bom sistema de controle de versão (eu gosto de git ) todos os diretórios que eu me importo e uma vez em uma lua azul, coloco-os na nuvem ou em um disco rígido externo ou algo assim; já que eu raramente explico o sistema em si (com mais frequência faço algo estúpido com meus próprios arquivos) é tudo que eu sempre precisei em uma máquina local.