Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA1579 ; Tue, 23 Feb 93 14:49:22 EST Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!network.ucsd.edu!ogicse!psgrain!ee.und.ac.za!shrike.und.ac.za!hippo!kudu!g89r4222 From: g89r4222@kudu.ru.ac.za (Geoff Rehmet) Newsgroups: comp.unix.bsd Subject: [386BSD] More options for rdump & rrestore Message-ID: <g89r4222.730049559@kudu> Date: 18 Feb 93 15:32:39 GMT Article-I.D.: kudu.g89r4222.730049559 Sender: news@hippo.ru.ac.za (Usenet News Admin) Organization: Rhodes University, Grahamstown, South Africa Lines: 228 Hi, This follows on my enquiries about rdump and rrestore - to use a remote tape drive to do filesystem backups. I have added the option to specify the remote tape device as user@host:device - which I need since I cannot log in as root on the system which has the remote tape. The following is a shell archive of the diffs which are needed to add these options to 386bsd's rdump and rrestore. Geoff. ----Cut here ------------ #!/bin/sh # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # dumpmain.diff # dumprmt.diff # rdump.diff # rrestore.diff # tape.diff # # Created by Geoff Rehmet - geoff@braae.ru.ac.za # echo x - dumpmain.diff sed 's/^X//' >dumpmain.diff << 'END-of-dumpmain.diff' X*** /usr/src/sbin/dump/dumpmain.c Thu Feb 18 12:39:03 1993 X--- /usr/src/sbin/dump/dumpmain.c.orig Thu Feb 18 11:53:48 1993 X*************** X*** 71,77 **** X long blocksperfile; /* output blocks per file */ X #ifdef RDUMP X char *host; X- char *ruser; /* name of remote user */ X int rmthost(); X #endif X X--- 71,76 ---- X*************** X*** 245,268 **** X X #ifdef RDUMP X { char *index(); X! ruser = tape; X! host = index(tape, '@'); X tape = index(host, ':'); X if (tape == 0) { X msg("need keyletter ``f'' and device ``host:tape''\n"); X exit(1); X } X- if (host == (char *)NULL) X- { X- /* There was no @ sign specified - therefor assume remote X- user is the same as local user */ X- ruser = (char *)NULL; X- host = tape; X- } X- else X- { X- *host++ = (char *)NULL; X- } X *tape++ = 0; X if (rmthost(host) == 0) X exit(X_ABORT); X--- 244,255 ---- X X #ifdef RDUMP X { char *index(); X! host = tape; X tape = index(host, ':'); X if (tape == 0) { X msg("need keyletter ``f'' and device ``host:tape''\n"); X exit(1); X } X *tape++ = 0; X if (rmthost(host) == 0) X exit(X_ABORT); END-of-dumpmain.diff echo x - dumprmt.diff sed 's/^X//' >dumprmt.diff << 'END-of-dumprmt.diff' X*** /usr/src/sbin/dump/dumprmt.c Thu Feb 18 14:28:05 1993 X--- /usr/src/sbin/dump/dumprmt.c.orig Thu Feb 18 14:37:26 1993 X*************** X*** 71,78 **** X extern int ntrec; /* blocking factor on tape */ X extern void msg(); X X- extern char * ruser; X- X int X rmthost(host) X char *host; X--- 71,76 ---- X*************** X*** 112,118 **** X pw = getpwuid(getuid()); X if (pw && pw->pw_name) X name = pw->pw_name; X! rmtape = rcmd(&rmtpeer, sp->s_port, name, ruser?ruser:name, _PATH_RMT, 0); X size = ntrec * TP_BSIZE; X while (size > TP_BSIZE && X setsockopt(rmtape, SOL_SOCKET, SO_SNDBUF, &size, sizeof (size)) < 0) X--- 110,116 ---- X pw = getpwuid(getuid()); X if (pw && pw->pw_name) X name = pw->pw_name; X! rmtape = rcmd(&rmtpeer, sp->s_port, name, name, _PATH_RMT, 0); X size = ntrec * TP_BSIZE; X while (size > TP_BSIZE && X setsockopt(rmtape, SOL_SOCKET, SO_SNDBUF, &size, sizeof (size)) < 0) END-of-dumprmt.diff echo x - rdump.diff sed 's/^X//' >rdump.diff << 'END-of-rdump.diff' X*** /usr/src/sbin/dump/rdump.8 Thu Feb 18 14:34:43 1993 X--- /usr/src/sbin/dump/rdump.8.orig Thu Feb 18 14:31:09 1993 X*************** X*** 56,65 **** X key must be specified and the file X .Ar argument X supplied should be of the form X! .Pa [user@]machine:device . X! The X! .Pa user X! part of the argument is optional. X .Pp X .Nm Rdump X creates a remote server, X--- 56,62 ---- X key must be specified and the file X .Ar argument X supplied should be of the form X! .Pa machine:device . X .Pp X .Nm Rdump X creates a remote server, END-of-rdump.diff echo x - rrestore.diff sed 's/^X//' >rrestore.diff << 'END-of-rrestore.diff' X*** /usr/src/sbin/restore/rrestore.8 Thu Feb 18 15:14:17 1993 X--- /usr/src/sbin/restore/rrestore.8.orig Thu Feb 18 15:11:39 1993 X*************** X*** 55,65 **** X .Cm f X key should be specified and the file X supplied should be of the form X! .Ar [user@]machine:device . X! The X! .Ar user X! part of the argument is optional, and specifies the username which should be X! used on the remote machine. X .Pp X .Nm Rrestore X creates a remote server, X--- 55,61 ---- X .Cm f X key should be specified and the file X supplied should be of the form X! .Ar machine:device . X .Pp X .Nm Rrestore X creates a remote server, END-of-rrestore.diff echo x - tape.diff sed 's/^X//' >tape.diff << 'END-of-tape.diff' X*** /usr/src/sbin/restore/tape.c Thu Feb 18 15:09:17 1993 X--- /usr/src/sbin/restore/tape.c.orig Thu Feb 18 14:51:46 1993 X*************** X*** 65,74 **** X int Bcvt; /* Swap Bytes (for CCI or sun) */ X static int Qcvt; /* Swap quads (for sun) */ X u_long swabl(); X- X- #ifdef RRESTORE X- char * ruser; X- #endif X /* X * Set up an input source X */ X--- 65,70 ---- X*************** X*** 88,106 **** X newtapebuf(NTREC > HIGHDENSITYTREC ? NTREC : HIGHDENSITYTREC); X terminal = stdin; X #ifdef RRESTORE X! ruser = source; X! host = index(source, '@'); X! tape = index(source, ':'); X! if(host == (char *)NULL) X! { X! /* no @ found - assume same user as on local system */ X! host = source; X! ruser = (char *)NULL; X! } X! else X! { X! *host++ = (char)0; X! } X if (tape == 0) { X nohost: X msg("need keyletter ``f'' and device ``host:tape''\n"); X--- 84,91 ---- X newtapebuf(NTREC > HIGHDENSITYTREC ? NTREC : HIGHDENSITYTREC); X terminal = stdin; X #ifdef RRESTORE X! host = source; X! tape = index(host, ':'); X if (tape == 0) { X nohost: X msg("need keyletter ``f'' and device ``host:tape''\n"); END-of-tape.diff exit -- ==========================g89r4222@alpha.ru.ac.za============================ Geoff Rehmet, Comp Sci Dept, |#define DISCLAIMER These are my ramblings \ Rhodes University, Grahamstown, | not the Univerisity's RSA,