This question is impossible to answer definitively without knowing more about, say, your operating system, whether you have command line access, whether your WP and Civi databases are separate or one, etc. I'll answer for what works for me.
On a Linux machine, I would use backupninja
to first back up MySQL using mysqldump
. My backupninja configurations are public.
Second, I configure a backupninja job using rsync
, rdiff-backup
, or borgbackup
to back up the WordPress root (e.g. /var/www/mysite
) along with the MySQL dump. All three of those utilities can back up either locally or remotely.
If you prefer shell scripts to backupninja, AGH Strategies posts their backup script on Github.