Personal tools
/ Physics at UofT / Services / Physics Computing Services / Documentation / System Documentation / Backups / Legato Networker Backups and the Debian Distribution

Legato Networker Backups and the Debian Distribution

— filed under: ,

A short HOWTO for using RPM packages of Networker 7.1.x on Debian Linux systems.

Using Legato Networker on Debian GNU/Linux

Legato Networker, a very well known (and rather expensive) backup suite, supplies RPM packages for installation on Redhat Linux systems. (This was true as of the time that we obtained our licenses anyway.)

Because our fleet of Linux boxes is not completely homogeneous, we have a few Debian-based hosts that we want to backup. It would, of course, be easiest if Legato supplied Debian .deb packages, but, alas, we must make do with the RPMs.

Because there was a time when many packages were available only in RPM format (because of the early dominance of Redhat as an end-user distribution), some enterprising Debian users developed alien, a deb-to-rpm package converter. Although alien does an excellent job of converting many packages, some RPM packagers like to play games with auto-generation of libraries or filesystems during the installation process that are not done in such a way that they are captured in the converted deb package. So, we must perform some manual fix-ups after installation. This is the case with the Legato client RPMs.

Legato RPM Conversion and Installation

joe@zanzibar$ alien lgtoclnt-7.1.3-1.i686.rpm
lgtoclnt_7.1.3-2_i386.deb generated
joe@zanzibar$ dpkg -i lgtoclnt_7.1.3-2_i386.deb
Selecting previously deselected package lgtoclnt.
(Reading database ... 105330 files and directories currently installed.)
Unpacking lgtoclnt (from lgtoclnt_7.1.3-2_i386.deb) ...
Setting up lgtoclnt (7.1.3-2) ...

Now we have only a partial installation. Two components have not been replicated.

  1. The non-LSB compliant, but necessary, /nsr filesystem has not been created.
  2. The startup script, /etc/init.d/networker, has not been installed.

The simplest way to deal with this in an environment with Redhat clients nearby is to simply copy these files into place.

rsync -av -e ssh root@rhclient:/nsr /

Problems with the init.d Startup Script

Although I did not take much time to investigate the reasons for the problem, I quickly discovered that the redirections to /dev/console, which work fine on the Redhat systems, cause the script to stall in the Debian environment (Debian 3.1 = Sarge). This was resolved by removing all of the parentheses used to spawn subshells and the redirections to /dev/null. This operation is described below via a simple sed script and also with a unified diff.

$ mv networker networker.orig
$ sed 's/(\(.*\))/\1/; s/ > .dev.console.*//' networker.orig > networker
[/etc/init.d]
root@zanzibar# diff -u networker.orig networker
--- networker.orig 2005-06-12 00:10:54.168266640 -0400
+++ networker 2005-06-11 23:46:04.483294130 -0400
@@ -6,29 +6,29 @@

case $1 in
'start')
-(echo 'starting NetWorker daemons:') > /dev/console
+echo 'starting NetWorker daemons:'
if [ -f /usr/sbin/nsrexecd ]; then
- (/usr/sbin/nsrexecd) > /dev/console 2>&1
- (echo ' nsrexecd') > /dev/console
+ /usr/sbin/nsrexecd
+ echo ' nsrexecd'
fi
if [ -f /usr/sbin/lgtolmd ]; then
- (/usr/sbin/lgtolmd -p /nsr/lic -n 1) > /dev/console 2>&1
- (echo ' lgtolmd') > /dev/console
+ /usr/sbin/lgtolmd -p /nsr/lic -n 1
+ echo ' lgtolmd'
fi
if [ -f /usr/sbin/nsrd -a ! -f /usr/sbin/NetWorker.clustersvr ]; then
- (/usr/sbin/nsrd) > /dev/console 2>&1
- (echo ' nsrd') > /dev/console
+ /usr/sbin/nsrd
+ echo ' nsrd'
fi
;;
'stop')
-(echo 'stopping NetWorker daemons:') > /dev/console
+echo 'stopping NetWorker daemons:'
if [ -f /usr/sbin/nsr_shutdown ]; then
if [ -f /usr/sbin/NetWorker.clustersvr ]; then
- (/usr/sbin/nsr_shutdown -c -a -q) > /dev/console 2>&1
- (echo ' nsr_shutdown -c -a -q') > /dev/console
+ /usr/sbin/nsr_shutdown -c -a -q
+ echo ' nsr_shutdown -c -a -q'
else
- (/usr/sbin/nsr_shutdown -a -q) > /dev/console 2>&1
- (echo ' nsr_shutdown -a -q') > /dev/console
+ /usr/sbin/nsr_shutdown -a -q
+ echo ' nsr_shutdown -a -q'
fi
fi
;;