
Backing Up User Data to a Server with rsync
|
241
Restoring Lost or Damaged Files
No backup system is any good if lost files cannot be restored. Not only must we
must be ready in case disaster strikes, but we must also test our recovery and restora-
tion plans to make sure they will work when they are most needed.
Our restoration script is just slightly more complicated than the previous script.
We’ve added a way to specify individual files to be restored:
#!/bin/bash
dest=server1
user=$(whoami)
cd || exit 1
for file in "$@" ; do
rsync -aHPvz "${user}@${dest}:./${file}" "./${file}"
done
To restore files, we simply run the script, passing the names of the files to be restored
as arguments on the command line. In the following example, we will intentionally
remove one of our files and then watch it be restored:
amy@desk12:~$ rm sales-plan-2006-10.sxw
amy@desk12:~$ ./backrestore sales-plan-2006-10.sxw
Password:
receiving file list ...
1 file to consider
sales-plan-2006-10.sxw
41285 100% 6.56MB/s 0:00:00 (1, 100.0% of 1)
sent 42 bytes received 39299 bytes 6052.46 bytes/sec
total size is 41285 speedup is 1.05
amy@desk12:~$
We can also restore all the files at once by using a dot as the filename.
Automated Backups
Backups can be automated using scripts similar to these run as cron jobs (discussed
in Chapter 10). SSH requires the user’s password to be entered, so you’ll need to
include your users’ public keys in