Backup
Backups are part of a sane recovery scheme that should help recover lost data. They can be thought of anything that is done to archive important system and user data.
Backup strategies
For home users
Keep a folder with files that you want to keep secure. You need to copy it to another disk so the data survives when one disk fails or you delete something by accident. Best, have your archive folder on your hard disk and copy it to at least one USB disk. Now you need software to synchronize this folder on the two disks. A good choice is UnisOn. It allows you to sync bidirectionally, and it compares the files' content rather than their change date. This allows you to identify corrupted files.
How to do it
Backup your home directory
From the command line, type:
tar -cvzf myhomebackup.tar.gz ~
~ stands for your home directory. The z option packs your file in gzip format.
Then copy myhomebackup.tar.gz onto some other medium: CD, DVD, removable drive, etc.
Hint: Using tar with the --newer option will allow you to save only files that have changed since your last backup. This is known as incremental backup, compare rsync.
Backup your computer
To backup your computer including all system configuration and kernel modules, but excluding everything that is mounted (e.g. /proc) use
tar -cvlf slash.tar.gz /
The l option says "local filesystems only". You need it because you do not want to backup /proc.
To store a backup of your computer on another computer in the network, use
tar -cv -f- $(ls -1 | grep -Ev "proc|sys|tmp|media|mnt") | ssh root@target "cat >/root/slash.tar"
This stores a backup of your computer, but not /proc, /sys, /tmp, /media and /mnt on the computer target in /root/slash.tar.
Backup and synchronise several computers
If you have several computers (maybe because you have several flats), you can maintain an eternal archive on a USB disk that you can transport. For data security, you synchronize your USB disk with your computers. Let's say the USB disk is mounted on /mnt/sda1, and your archive is in /root/archive. You create your archive with
rsync -e ssh -avz /root/archive /mnt/sda1
You can then show the differences between your archive on a USB disk and on your computer with
rsync -e ssh -avz --delete --dry-run /mnt/sda1/archive /root/archive
And you can update your computer's archive from a USB disk using
rsync -e ssh -avz /mnt/sda1/archive /root/archive
You can add the --delete option behind -avz to delete all content on the target that is not on the source. If you are using HOWTO Create ssh keys with rsync as a different user
rsync -avz /path/to/local/file -e 'ssh -i /home/user/.ssh/id_rsa' remote_user@remote_system:/path/to/remote/
Same process on a non-standard port
rsync -avz /path/to/local/file -e 'ssh -p22222 -i /home/user/.ssh/id_rsa' remote_user@remote_system:/path/to/remote/
Backup MySQL
Backup utilities
See list of backup applications.
See also
- Clone your computer
- rsync
- List of backup applications
- Step By Step Backup Tutorials with all different types of backup applications.