Remote Tape Backups on Linux
So, if you're a small business type like me, or simply have no money, or time,
to buy and install tape drives in all your machines (and remember to change the
tapes in all those drives at the right intervals), you may want to consider using
the tape drive on one central machine to archive all your Un*x boxes. It's not
too difficult, but was hard enough that I thought it would be worth writing
1) One pre-installed, working Linux tape device
2) A reasonably fast network. remember all that data has got to go across the
local net to get to the remote tape device. I have either 100BaseT, or Gigabit
cards, and switches in my network.
3) A basic understanding of how to use tape drives, and cron jobs.
Linux OS: SuSE Linux 8.1 (2.4.21-151 kernel)
collette:/home/nscan # uname Linux collette:/home/nscan # uname -r 2.4.21-151-default collette:/home/nscan/doc/notes/current/old # rpm --query openssh openssh-3.4p1-215 collette:/home/nscan/doc/notes/current/old # rpm --query tar tar-1.13.25-45
My Solution (or the one I found by Googling around ;)
The basic technique that I use is to run tar on the machine to be backed up. I create
a tar achive and pipe it into an ssh command which securely logs in to the machine
with a tape drive, then takes the (tar) input and sends it to the dd command, which
does a raw write of the data to the tape device. Restoring is done in the reverse
Not My Solution
First, I pursued the
system. It turned out to be a major pain in the rear, and as far as I know, doesn't
encrypt any data you're transferring over the network. Since I'm paranoid about snoops,
among other things, the solution I found was all around better, and didn't require finding
cd /folder/to/be/backed/up tar cpvf - . | ssh user@host_with_tape_drive "/bin/dd of=/dev/st0"
then, depending on your ssh setup, you may get prompted for the password. If you're
trying to incorporate this into an automatic cron job, then you need to setup ssh
pulic key authentication to allow the ssh client side to automatically pass a pre-approved
public key to the server (tape side) to gain access without prompts.
You also will need to adjust the command line if dd isn't in /bin on your system, or
if your tape isn't named /dev/st0 like mine.
cd /temp/folder/to/hold/backup/data ssh user@host_with_tape_drive "/bin/dd if=/dev/st0" | tar xvpf -
Keep in mind that depending on the responsiveness of your ssh service, it may appear that files are being backed-up or restored before the ssh authentication has taken place. So, wait a bit to make sure you're not going to be prompted for your password. Otherwise, you may leave for a few hours, and return to find out that nothing has really happened .. the system is waiting for your input :(
That's it! Enjoy the relative simplicity of having only one tape drive.
Copyright ©2003-2016 Enscand, Inc.
All Rights Reserved
Modified February 21, 2016