Everyone has their favorite solution. Mine is called [image-utils](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=247568&sid=916fa8c6bd688ff42b578532480a8c43). Why? 

1. open-source (and free :)
2. small footprint - filesize & resources required for execution
3. creates a portable *image file* that's easy to store for later use (or distribute)
4. runs concurrently with your system (you can make image backups while your system is running)
5. small image file size 

You can download a .zip containing the code (shell scripts) from the forum link above, or you can sync to it from [this github page](https://github.com/seamusdemora/RonR-RPi-image-utils)<sup>NOTE</sup>. 

---
NOTE: I am not the author of image-utils, nor do I make any changes at all to the source. I have put it on my GitHub site for my own convenience. I'm happy to share that if you prefer using `git` to keep your local sources updated (rather than dealing with the .zip file). I maintain sync with the *master copy* on the Raspberry Pi org's forum with a small script I've written to automate the process.