Linux backup tutorial

This is a tutorial on how to make backup on a Linux system. Please read and understand how Linux backup works before attempting to create the real backup job. This tutorial is a step by step guide, so it starts with a simple example and finish with a complete example.

Linux file backup software and backup programs

There are several backup tools in Linux.

  1. Ubuntu backup using Simple Backup program
  2. Linux backup using Linux tar command utility
  3. Linux backup using dd command utility

Ubuntu backup system using Simple Backup program

The Simple Backup program is a gui backup tool. You can install it in Ubuntu Desktop by clicking on the Applications and choose Add/Remove. When the Add/Remove pane opens, type Simple Backup in the Search textbox. You'll see a few backup programs in the result, but what we need is the Simple Backup Suite which includes Simple Backup Config and the Simple Backup Restore.

Here is the description about Simple Backup Suite:

Simple Backup Suite is a set of backend backup daemon and GNOME GUI frontends that provide a simple yet powerful backup solution for common desktop users. Backups can be written to local directory or remote servers using GNOME VFS technology. A fine control is possible regarding what folders and files to backup. Files can be excluded even with a set of regular expressions. Regular backups can be scheduled. This tool has been written with Google sponsorship during Summer of Code 2005 with mentoring help from Ubuntu.

Canonical does not provide updates for Simple Backup Config (and Simple Backup Restore). Some updates may be provided by the Ubuntu community.

Click on the Simple Backup Config and the Simple Backup Restore tickboxes. See the example screenshot below:

Simple Backup Config screenshot image

A new pane pops up asking you whether you want to apply the changes. Please check that only the Simple Backup Config and the Simple Backup Restore were there. Click Apply button. See the example screenshot below:

choose Simple Backup Suite screenshot image

Here is the Simple Backup Config and the Simple Backup Restore installation in progress screenshot:

Installing Simple Backup Suite screenshot image

When the installation complete, you'll see a screenshot like the example below:

Simple Backup Suite installation finished screenshot image

Now you can start using Simple Backup Config to backup files. Click System and choose Administration. From the list, choose Simple Backup Config to open the backup program. You need to enter your password to do the backup job. Here is the example screenshot of the Simple Backup Config program:

Simple Backup program screenshot image

Here is the backup options:

  • Use recommended backup settings.
  • Use custom backup settings.
  • Manual backups only.

You can customize the backup properties, such as:

  • Include - Add/Remove directories or files to backup.
  • Exclude - Add/Remove directories or files to backup. You can specify the path, file types, regex and max size details.
  • Destination - Use default destination (/var/backup), set custom local backup directory or use a remote directory if you want to backup to a network server.
  • Time - Set time for a regular manual/automatic backup including a full backup and incremental backup.
  • Purging - Set to purge old and incomplete backup.

When you done customizing the backup properties, click Save. Click Backup Now to start backup Ubuntu system.

Backup information and tips:

  • Backup can take some times to finish (depends on how many directories and size).
  • Testing backup on the disk first before setting backup directly to a cd, dvd or external hard disk.
  • Do not put backup on the same hard disk where your Ubuntu resides. Put backup on the second hard disk, cd, dvd or external hard disk.
  • Create a full backup at least once a week and daily incremental backup is recommended.

Linux backup using Linux tar command utility

Probably the most popular backup utility in Linux is the tar command. We have discussed about tar command quite detail in Linux tar command - How to archive, compress and extract files in Linux tutorial. You can check the tutorial for more information about tar command syntax, how to make tar archive and compress tar file. Here are some examples on how to do backup using tar command:

To backup only certain files and directories in Linux, we'll use 'tar -cvf' command to archive all the files and directories like in the example below:

[email protected]:~# cd /home/luzar/
[email protected]:/home/luzar# mkdir /var/backup
[email protected]:/home/luzar# tar -cvf /var/backup/selective-backup.tar tutorials/ priority/ sony/ barcode/

The example above creates an archive file named 'selective-backup.tar' which contains tutorials, priority, sony and barcode directories in /var/backup directory. All files have been archived but not compressed.

To backup a complete user's home directory in Linux system, we'll use 'tar -czvf' and automatically compressed the archived file with gunzip using the '-z' option. See the example below:

[email protected]:/home/luzar# cd
[email protected]:~# tar -czvf /var/backup/luzar-home.tar.gz /home/luzar/
tar: Removing leading `/' from member names

In the example above, we use absolute path names, so when restoring backup, all files will be restored to their respective directories. We also have a message tar: Removing leading `/' from member names. This statement means a '/' will be removed from all files and directories added to the archive. It will be 'home/luzar/' instead of '/home/luzar/'. The difference is, when restoring an archive file with '/home/luzar/', all the data will be written to the /home directory which eventually will overwrite the existing data while the 'home/luzar/' will be written to wherever it's been extracted to.

If we want to compress file using 'bzip2', using '-j' command instead. The extension for bzip2 compressed destination file is 'file.tar.bz2'.

Here is an example result of an archive file, gunzip compressed and bunzips compressed file. See the different in size:

[email protected]:/home/luzar# tar -cvf /var/backup/priority.tar priority/
[email protected]:/home/luzar# tar -cjvf /var/backup/priority.tar.bz2 priority/
[email protected]:/home/luzar# tar -czvf /var/backup/priority.tar.gz priority/
[email protected]:/home/luzar# ls -l /var/backup/
total 1844
-rw-r--r-- 1 root root 675840 2009-08-17 22:40 priority.tar
-rw-r--r-- 1 root root 601202 2009-08-17 22:41 priority.tar.bz2
-rw-r--r-- 1 root root 597244 2009-08-17 22:42 priority.tar.gz
[email protected]:/home/luzar#

Linux incremental backup

All backup in the previous examples are full backup. The incremental backup means we only backup data(files and directories) updated after the full backup. This way, we can save both times and hard disk spaces. To make an incremental backup, we have to create a snapshot file during the full backup. Here is a complete command example:

[email protected]:/home/luzar# tar -czvg /var/backup/tutorials-snapshot -f /var/backup/tutorials-full-backup.tar.gz tutorials/

To backup into the external hard disk drive or usb drive, change backup target file to the correct drive mount point. For example, if we want to backup files to the external hard disk drive, mount the external hard disk and use tar command to create the backup:

[email protected]:/home/luzar# mount /dev/sdc1 /media/
[email protected]:/home/luzar# tar -czvg /var/backup/tutorials-snapshot -f /media/tutorials-full-backup.tar.gz tutorials/

To backup files into the cd or dvd, see the next section, Backup Linux using dd command.

Backup Linux using dd command utility

Linux dd command is another great backup utility. We have seen files and directories backup examples using tar command. With Linux dd command, you can save those backups in the cd or dvd. More important is that, we can backup the whole hard disk device or the whole system using dd command. Yes, Linux dd command can do that. Here is the meaning of dd as described in info coreutils 'dd invocation':

`dd' copies a file (from standard input to standard output, by default)
with a changeable I/O block size, while optionally performing
conversions on it.

The Linux dd command's usage format is pretty simple. Here is an example of dd command syntax:

[email protected]:~# dd if=/dev/sda of=/dev/sdb bs=4096

Here is the explanation:

  • dd - Convert and copy a file.

  • if=/dev/sda - Input (source).

  • of=/dev/sdb - Output.

  • bs=4096 - Set both input and output block sizes to 4096 bytes.

Yes. That's the Linux dd command syntax you need to backup the first hard disk to the second hard disk.

To backup the gunzip or bzip2 compressed file into the cd or dvd, you need to provide the correct dvd writer drive. Mount the drive if you need to. Here is the example command:

[email protected]:~# dd if=/var/backup/tutorials-full-backup.tar.gz of=/dev/sr0

That's it. Good luck!



wow,I really appreciate, what you have done and written, and hope to hear and see more and more from you and your community. God Bless You.

I hope the backup tutorial is useful to you. Don't mention it, we just do something small for the community. We should thank good hackers out there who spend their precious time developing programs and applications and make it open source for us.

I try backup using dd command as you suggested to a thumb drive but the problem is the thumb drive cannot be mounted again in Linux. When I plug it in windows, it says the thumb drive need to be formatted. What's wrong? I am new to Linux.

What exactly did you do? Did Linux detect the thumb drive when you plug it to the usb port? If you copy a Linux boot disk to the thumb drive using dd command (create Linux boot disk), you can see the thumb drive in /proc/scsi/scsi but cannot mount it. You can try reboot your Linux system and change boot sequence to boot from thumb drive. See what happens.

If you need to use the thumb drive, you can format it using your windows operating system, that's easier. Try copy some files into the thumb drive and check if Linux detects it.

Good luck!

Add new comment