Save $100 in 5 Minutes Backing Up Your Web Site


Robert Plank

Heres an easy way to backup your web sites files and database worth thousands of dollars, no doubt that costs $0 to learn and perform. It only takes seven easy steps.

You dont need to know a lot about how to use Unix or how to use databases like mySQL. The only real tool you need is a telnet client. Also, you need to know a few commands which Ill show you now. You could even write the commands Im about to give you on a cheatsheet.

STEP 1: CONNECT & GET IN THE RIGHT FOLDER

The web host youre trying to back up needs to allow shell access most do these days.

If you have a Windows computer, download a program called "PuTTY" which you can use to login in your web hosts shell. Search for "putty ssh" on Google or get it here: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Open up PuTTY and at the top type in your hostname your web site address without the http or www, just "yourname.com". Your web host either uses SSH or telnet, first try logging in using SSH and if it wont connect try it using Telnet. Click the "Open" button at the bottom to connect.

When it connects you will be asked for your accounts username, and after you enter that, it will ask for your password. If these both take, youll see a command prompt of sorts. What you have to do is browse to the document root, depending on your host its usually a folder like "public_html" or "wwwroot".

If the wwwroot or public_html folder has more folders inside of it, in the form of yourdomain.com, dont browse into them yet, just stay in the folder youre in.

Browsing in the Unix command prompt is just like DOS, to view a folder type "dir" or "ls", and to go into a certain folder type "cd foldername". If you messed up you can type "cd .." to move up one level.

STEP 2: BACK-UP THE DATABASE

The first step if youre backing up a site is to dump your mySQL database. To do this obviously you need the mySQL username and password you want to back up. If your mySQL username is "myuser" and the mySQL password is "mypassword", youd type:

mysqldump -umyuser -pmypassword -A > dump.sql

mysqldump is the program we run to dump the database into a file, then we type "-u" followed by the username no spaces and "-p" followed by the password also no spaces. The uppercase "-A" tells the program we want to dump every database this user has access to. It MUST be an uppercase A.

The ">" afterwards says we want to put this programs output into a file otherwise it would show up on the screen and "dump.sql" is the name of the file were going to dump to.

This may take a while depending on the size of your database. Be patient. Once you have a command prompt again, its done.

STEP 3: BACK-UP YOUR FILES

Now you can put everything into one big file, which you can easily move over to the new host in one go, instead of one at a time. Unix doesnt let you create Zip files, but you can create a TAR Tape Archive which just rolls a bunch of files together without any sort of compression.

To create your TAR archive, type:

tar -cvf dump.tar *

The "-c" tells the program to create a new TAR archive, the "v" following right after says to be verbose, in other words, give us the name of every file thats being added to the archive. "f: means were saving this to a file, as opposed to showing it on the screen youd just see junk.

"dump.tar" is the name of the file we want to save into, and the "*" means we want to put everything into this TAR archive -- files, folders, everything.

You may get some sort of warning about not adding dump.tar to the archive, thats no big deal because we dont want this file to add itself.

Your files are backed up. At this point its time to move things over to the next host. Theres a way we can do this without you having to download the whole thing, and re-upload it.

STEP 4: ARRANGE YOUR FILE FOR PICKUP

Remember how I said when you were in "wwwroot" or "public_html" not to browse into the folder containing a domain name Well now its time to move that dump over into one of them so it can be picked up.

If one of your folders is, say, yourdomain.com, type:

mv dump.tar yourdomain.com

This moves "dump.tar" into the folder "yourdomain.com".

STEP 5: MOVE THE NEW FILE OVER

Login to your new host. Browse to its "wwwroot" or "public_html" folder.

Most hosts include a program called "wget" which works sort of like a browser in that you give it a URL to pick-up that it loads. Only this browser also saves the file you want to load.

If your old host was at yourdomain.com, youd just type:

wget http://www.yourdomain.com/dump.tar

This will load that URL and save it as "dump.tar". Youll probably see some sort of progress indicator as it goes.

STEP 6: DECOMPRESSING THE FILE

Once you have the file, you use that same TAR program to decompress it. Type:

tar -xvf test.tar

The "v" and "f" are still there, but instead of "c" create we use "x" extract. This will unpack each file and let us know which one its working on.

STEP 7: RESTORING THE MYSQL DATABASE

Before you can put the mySQL dump back into the database, you have to go into this new web hosts control panel and create blank databases with the same names as you had before.

You also have to create a mySQL user and make sure that user has access to all those databases youve created.

Once thats done find the dump.sql that was unpacked with all of the other files.

Instead of using the program "mysqldump" to dump the files, we use the program "mysql" which lets us put commands into the database. Thats basically what a dump is, a file full of commands that, when run, will recreate the old database exactly.

This time we dont type in the database name right away. To get into mySQL from the command prompt, type:

mysql -umyuser -pmypassword

Where "myuser" and "mypassword" are your mySQL username and password. Once youre in youll get kind of a weird looking prompt. All you have to do at this point is type:

source dump.sql

This says, open up the file dump.sql, read through it and do whatever it says to do in that file. You will see a bunch of lines telling you a command has been entered 0 Rows Affected, 1 Rows Affected, something like that.

If everything goes smoothly, type "quit" and you will be back in the shell.

Youve just moved one site or a bunch of sites over from one host to another in about 5 minutes.





About The Author

Article by Robert Plank
Want to pick up more useful PHP and programming skills, even if you arent "the programming type" Subscribe here -- http://jumpx.com/newsletter

home | site map
© 2005