The best backup approach is to (1) dump your database and then (2) backup your entire content store directory.
However, if you want to mirror your document library to an external drive, there are several ways to do it...
1. Your document library is accessible via WebDAV. You could mount it as a drive, then use rsync to copy it to a backup volume. Obviously you will not get the metadata or the version history if you go this route.
2. You could write a script that uses the REST API or CMIS to crawl the document library and write new and updated files to the backup volume.
3. You could use behaviors to track when files are new or updated and then put a message on a queue. In a separate process, have Java code that subscribes to the queue and when it seems an event, fetch the file via a REST API or CMIS and write it to the backup volume.
I've successfully used option 3 for a client. We added UI actions to Share that allow authorized end-users to "flag" a document for backup. It works as described above, but instead of watching for any create/update, the behavior watches for the presence of a "marker" aspect that indicates the file should be archived.