Friday, October 07, 2005

My remote ufsdump is failing with a "Protocol botched" message.

Subject: 10.1) My remote ufsdump is failing with a "Protocol botched"
message. What do I do?

The problem produces output like the following:

DUMP: Dumping /dev/rsd0a (/) to /dev/nrst8 on host foo
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 8232 blocks (4.02MB) on 0.00 tape(s).
DUMP: Protocol to remote tape server botched (in rmtgets).
rdump: Lost connection to remote host.
DUMP: Bad return code from dump: 1

This occurs when something in .cshrc on the remote machine prints something
to stdout or stderr (eg. stty, echo). The remote ufsdump command doesn't
expect this, and chokes. Other commands which use the rsh protocol (eg.
rdist, rtar) may also be affected.

The way to get around this is to add the following line near the
beginning of .cshrc, before any command that might send something
to stdout or stderr:

if ( ! $?prompt ) exit

This causes .cshrc to exit when prompt isn't set, which distinguishes
between remote commands (eg. rdump, rsh) where these variables are not
set, and interactive sessions (eg. rlogin) where they are.


Post a Comment

<< Home