0

I once had a Wordpress that completely went broke after just updating Wordpress itself. The theme wasn't compatible yet. Glad I had a back-up, with a loss of 2 weeks of development.. Ever since I'm unsure whether I should update anything.

Because of that I would like to have a way of automatic backups of the complete website. I prefer incremental backups, so only the changed files, but complete backups aren't much of a problem either, though. Especially when you can change the frequency on a folder basis.

I've got a Synology NAS (preferred store location), but my VPS' contain enough space too.

My question How do I automatically backup my complete Wordpress websites on at least a weekly basis?

closed as too broad by birgire, Mark Kaplun, TheDeadMedic, s_ha_dum Dec 17 '15 at 16:09

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Flagged because it´s too broad and opinion-based, but just use any plugin you like. – flomei Dec 15 '15 at 10:22
1

As mentioned you can use a plugin to do this that will make backups to a directory or sftp location.


I don't really like using a plugin to do this, so I use rsnapshot to backup my MySQL database and specified directories (including wordpress).

  • Rsnapshot is way to complicated to give you instructions in a post, so I would google Synology NAS Rsnapshot for details about your NAS setup to acheive this.
  • I am not sure what OS you are using, but I have tutorial on how to backup my Server to my desktop using Ubuntu on both. This should help get you in the right direction if you want to use Rsnapshot. Here is my guide
  • You can use a plugin to backup your mysql database or setup crontab.

In order for you to backup your wordpress MySQL database the way I did you must have a .my.conf file under /home/user/ with the username and password of a mysql user that has the following access select, lock tables, show view, trigger, and events (may or may not need trigger/events).

[client]
user=username
password="password"

Here is my cron job for my wordpress MySQL Database which runs twice a day (I have a full dump as well):

20  0,12    *   *   *   /home/user/.scripts/mysql/wp.sh

Here is my script that it calls:

#!/bin/sh
mysqldump wp | gzip -9 > /home/user/.backups/mysql/wp-$( date '+%Y-%m-%d_%H-%M-%S' 
).sql.gz

I hope this helps get you in the right direction. Their is probably a better way to backup your MySQL to a file, but I set this up on someone's shared hosting, so I was limited on what I could and could not do. The drawback to dumping MySQL is that it locks the the database while dumping it to a file in order to not corrupt things. This means that your site may be inaccessible for a second or two during this time.

0

Some hosting platforms allow one-click full site and database backups at any time. And that one-click backup of the site and database can become a one-click full restore in a minute if an update broke something.

I always do the one click backups before doing ANY updates for plugins, themes, adding functions, new post templates, etc.

Then I do ONE UPDATE AT A TIME.

Then I test the tings that the ONE update would affect on the site.

If everything is looking and working good then you can do the next update (AFTER backing up everything with one click).

Don't bother trying to make a complex Rube Goldberg, incremental backup system when the goal is to back everything up before a change so that the site can be rolled back if there's a failure. A simple one-click full site and database backup is the easy solution.

An alternative to choosing a robust host is to use a service like ManageWP or CMS Commander to create full or partial backups and save them to DropBox, Server, FTP, Amazon, etc (I use both for other things as well).

Not the answer you're looking for? Browse other questions tagged or ask your own question.