This article is over two years old. Life moves quickly, and thus there is a good chance any references, recommendations, or opinions in this content are out of date. Make sure to verify any information independently.

Simple Backup Script for Linux Servers

Published December 25 2010 by Alex Blackie

I administer a local development server. I use it to practice my Unix terminal kung-fu, as well as develop some local intranet web applications. I’ve learned a lot from the old box. I’ve written a small bash script that I use to generate a backup of certain directories and compress it as a tarball.

The Code

Let’s start off with the final source code…

THE_DATE=`date "+%Y-%m-%d"`
cd /var/backups
mkdir $THE_DATE
cd $THE_DATE
tar cvzf latest_backup.tar.gz -C / var/www home/alex etc usr/bin

Pre-run checks

First, make sure there is a directory /var/backups. It doesn’t matter if it already exists, just as long as it’s there. Also, make sure you can run this program as root.

Setting it up

Make a new file in /usr/bin, name it whatever you want (I call mine wwwbackup). The content of that file is the source code above.

Save the file, then on the command line, run this command:

sudo chmod +x /usr/bin/yourfilename

That command will make the file executable by the system.

Configuring

The only line you’re going to want to change is the last line. At the end there are a few directory paths, these are the directories to be included in the backup. Each directory is separated by a space. Make sure you leave the first / and the space after it.

For example, if I wanted to only backup /var/www the last line would read:

tar cvzf latest_backup.tar.gz -C / var/www

Running It

You can run the program by typing sudo wwwbackup (where wwwbackup is the name of your file).

If all goes well, you’ll see a list of all the files in the directories you set backing up. The script will create a folder with the current day’s date and place a tarball under that folder with your backup contents.

If you don’t want the script to list all of the files it’s backing up, remove the letter v from the last line. So it would start like: tar czf.