Categories
Learning Journal

Backup WordPress UPLOADS folder

J de Silva shares his method to backup WordPress uploaded data and files with the rsync Linux command.

I develop my web sites from more than 1 computer typically. So, in the case of all my web sites developed with WordPress, I need to have a local copy of the wp-content/plugins and wp-content/uploads folders on each development machine if I want to test anything for my web site locally — on my laptop, for instance — before pushing it back out to the web server.

FYI: Computers, laptops and servers I use are all powered by Linux.

The easiest way to get a current, up-to-date version of a WordPress-powered web site’s uploaded content i.e. wp-content/uploads and/or wp-content/plugins folders, is to use the very helpful rsync command.

I maintain a little bash script to help me to do this easily, repeatedly, and from any laptop or computer I use, and I will also now share it (just the essential bits) here, in case it is something that you might find useful too.

You can also just copy and paste it to your favourite terminal window too.

# The path to the remote server's WordPress folder
_WWW="/var/www/html"
_WP_CONTENT="$_WWW/wp-content"
_UPLOADS="uploads"
_PLUGINS="plugins"

# Replace '[email protected]' with your host info 
DIRS_SRC="[email protected]:$_WP_CONTENT/$_UPLOADS :$_WP_CONTENT/$_PLUGINS"

# Set the path below to your local WordPress wp-content folder
DIR_DES="$HOME/domains/example.com/wp-content/"

# The rsync command with archive|compress|partial|progress|verbose options set
rsync -azPv $DIRS_SRC $DIR_DES

The first time it runs, it will take a while, because rsync (to sync both folders) must download everything that’s already there in the remote (production) server with the local machine, but on subsequent runs, rsync should only download new or modified files.

I also maintain a little helpful BASH script for me to quickly download any WordPress-powered web site’s database that I manage, but I will share that information another day in another post, perhaps.

Leave a Reply

Your email address will not be published. Required fields are marked *