Backup Site Recursively from FTP with Wget

Backing up your WebSite is a necessary step for all users.

This article describes how to recursively download your WebSite with all files, directories and sub-directories from FTP server, using Wget utility.

First of all create a folder in which you are going to download a site. For example, let’s create the folder backups in a home directory.

# mkdir ~/backups
# cd ~/backups

Download Entire Site from FTP

The following command recursively downloads your site with all its files and folders from FTP server and saves them to the current directory.

# wget -r -l 0 -nH ftp://user:pass@ftp.server.com
Option Description
user FTP username
pass FTP password
ftp.server.com IP address or domain name of an FTP server
-r, –recursive Recursive retrieving
-l, –level Maximum recursion depth (0 = unlimit)
-nH, –no-host-directories Disable generation of host-prefixed directories

Your site has been downloaded:

# ls -l
drwxr-xr-x 4 user group 4096 2013-05-09 18:20 yoursite.com

Backup Downloaded Site

Now you can compress the folder with your site as follows:

# tar -czf site-backup-$(date +%Y%m%d-%H%M%S).tar.gz yoursite.com

The previous command creates an archive, named something like site-backup-20130509-190638.tar.gz.

To extract the archive, type:

# tar -zxvf site-backup-20130509-190638.tar.gz

Download a Particular Folder from FTP

Let’s say we have the following structure in FTP home directory:

/yoursite.com/www/images

The following command recursively downloads ‘images’ folder, with all its content from FTP server and saves it to the current directory.

# wget -r -l 0 -nH -np --cut-dirs=2 ftp://user:pass@ftp.server.com/yoursite.com/www/images
Option Description
-np, –no-parent Don’t ascend to the parent directory
–cut-dirs Ignore ‘number’ parent directories

All these tasks have to be automated and added to Cron. The HowTo is coming …

Was it useful? Share this post with the world!

One Reply to “Backup Site Recursively from FTP with Wget”

  1. Very nice! Thanks.

Leave a Reply