I created a bash script to automate backups locally, and remotely on Github.
It is perfect for small projects such as this website.
I wanted a way to routinely backup game data for my self-hosted Minecraft server, and so I automated this script using Cron jobs. By using Rsync, the script detects changes between directories and only copies or deletes what is neccessary.
Cron scheduling allows automative flexibility in a way that can prioritize the needs of the user. If high availability is needed, the script can run more frequently. If read/write totals are a concern, the script can run less frequently to save disk health.
GitHub integration can be commented out for a simpler backup solution. By setting the destination drive to a network drive path, the script allows you to very quickly transfer files across your local network. Rsync natively supports SSH, allowing you to automate SSH backups to completely remote locations as well.