|
|
1.1 ! root 1: ....mm -t -rC3 this document ! 2: .ND "June 8, 1984" ! 3: .EH "'CHAPTER 10'UUCP ADMINISTRATION''" ! 4: .OH "''UUCP ADMINISTRATION'CHAPTER 10'" ! 5: .H 1 "UUCP ADMINISTRATION" ! 6: .H 2 "INTRODUCTION" ! 7: .P ! 8: This chapter describes how a \fBuucp\fR network ! 9: is set up, the format of control files, and administrative procedures. ! 10: Administrators should be familiar with the ! 11: manual pages for each of the ! 12: \fBuucp\fR ! 13: related commands. ! 14: .H 2 "PLANNING" ! 15: .P ! 16: In setting up a network of UNIX systems, there ! 17: are several considerations that should be taken into account ! 18: \fIbefore\fR ! 19: configuring each system on the network. ! 20: The following parts attempt to ! 21: outline the most important considerations. ! 22: .H 3 "Extent of the Network" ! 23: .P ! 24: Some basic decisions about ! 25: access ! 26: to processors in the network must be made ! 27: before attempting to set up the configuration files. ! 28: If an administrator has control over only one processor ! 29: and an existing ! 30: network is being joined, ! 31: then the administrator must decide what level of access should ! 32: be granted to other systems. ! 33: The other members of the network must make a similar decision for the new system. ! 34: The ! 35: UNIX ! 36: system ! 37: \fIpassword\fR ! 38: mechanism is ! 39: used to grant access to other systems. ! 40: The file ! 41: \fI/usr/lib/uucp/Permissions\fR ! 42: provides various permissions/restrictions for file system tree access ! 43: and command execution from remote machines, ! 44: and the file ! 45: \fI/usr/lib/uucp/Systems\fR ! 46: (old name was \fI/usr/lib/uucp/L.sys\fR) ! 47: on the local processor determines the ! 48: systems on the network that can be directly reached. ! 49: .P ! 50: When setting up more than one processor, ! 51: the administrator has control of a larger portion ! 52: of the network and can make more decisions about the ! 53: setup. ! 54: For example, the network can be set up as a ! 55: private ! 56: network ! 57: where only those machines under the direct control of the administrator ! 58: can access each other. ! 59: Granting ! 60: no ! 61: access to machines outside the network can be done if security ! 62: is paramount; however, this is usually impractical. ! 63: Very limited access can be granted to outside machines by each ! 64: of the systems ! 65: on the ! 66: private ! 67: network. ! 68: Alternatively, access to/from the outside ! 69: world can be confined to only one processor. ! 70: This is frequently done to minimize the effort in keeping ! 71: access information (passwords, phone numbers, login sequences, etc.) ! 72: updated and to localize the security holes ! 73: for the private network. ! 74: .H 3 "Hardware and Line Speeds" ! 75: .P ! 76: There are several supported means of interconnection ! 77: by ! 78: \fBuucp\fR(1), ! 79: .AL ! 80: .LI ! 81: Direct connection using a null modem. ! 82: .LI ! 83: Connection over the Direct Distance Dialing (DDD) network ! 84: using various dialers (e.g. WECo 801, Ventel, Vadic, Penril). ! 85: .LI ! 86: Connection using a DATAKIT\*(Tm VCS. ! 87: .FS "" ! 88: DATAKIT is a trademark of AT&T. ! 89: .FE ! 90: .LI ! 91: A UNET\*(EMEthernet\*(Tm network. ! 92: .FS "" ! 93: Ethernet is a trademark of Xerox Corporation. ! 94: .FE ! 95: .LE ! 96: .P ! 97: In choosing hardware, the ! 98: equipment ! 99: used by other processors on the network must be considered. ! 100: For example, if some systems on the network ! 101: have only 103-type (300-baud) data sets, then ! 102: communication with them is not possible ! 103: unless the local system has a 300-baud data set connected to a calling unit. ! 104: (Most data sets available on systems ! 105: are 1200-baud.) ! 106: If hard-wired connections are to be used between ! 107: systems, then the ! 108: distance ! 109: between systems must be considered since a null modem cannot be used ! 110: when the systems are separated by more than several hundred feet. ! 111: The limit for ! 112: communication at 9600-baud and 19200-baud is about 800 to 1000 feet. ! 113: However, the ! 114: RS232 specification and Western Electric Support Groups ! 115: allow for up to 50 feet. ! 116: Limited distance modems must be used beyond 50 feet as ! 117: noise on the lines becomes a problem. ! 118: .H 3 "Maintenance and Administration" ! 119: .P ! 120: There is a minimum amount of maintenance that must be provided ! 121: on each system to keep the access files updated, to ensure that ! 122: the network is running properly, and to track down line problems. ! 123: When more than one system is involved, the job becomes ! 124: more difficult because there are more ! 125: files to update and because ! 126: users are much less patient when failures occur between machines that ! 127: are under local control. ! 128: A tool, \fIuustat\fR, is available to aid the administrator by providing ! 129: information about the last attempts to contact various systems and the ! 130: age and number of jobs in the queue for remote systems. ! 131: .P ! 132: There is also a new cleanup program, \fBuucleanup\fR, that knows ! 133: about the different type files that could get left in the spool ! 134: directories. ! 135: It uses some heuristics in an attempt to give the users relevant ! 136: information about failures, for example, it tries to return ! 137: undeliverable mail messages to the sender. ! 138: In addition, for send/receive requests, it tells the requestor ! 139: what was attempted by giving specific file names. ! 140: The program is started by \fBuudemon.cleanup\fR, ! 141: which provides some addition cleanup functions. ! 142: See the \fIuucleanup.1m\fR manual page for details. ! 143: .H 2 "UUCP SOFTWARE" ! 144: .P ! 145: Figure 10-1 (at the end of this chapter) ! 146: illustrates the daemons used by the ! 147: \fBuucp\fR ! 148: network ! 149: to communicate with another ! 150: system. ! 151: The ! 152: \fBuucp\fR(1) ! 153: or ! 154: \fBuux\fR(1) ! 155: commands queue users' requests ! 156: and spawn ! 157: the ! 158: \fBuucico\fR ! 159: daemon ! 160: to call another system. ! 161: Figure 10-2 (at the end of this chapter) ! 162: illustrates the structure of ! 163: \fBuucico\fR ! 164: and the tasks that it performs in communicating with another system. ! 165: \fBUucico\fR initiates the call to another system and ! 166: performs the file transfer. ! 167: On the receiving side, ! 168: \fBuucico\fR ! 169: is invoked to receive the transfer. ! 170: Remote execution jobs are actually ! 171: done by transferring a command file to the remote ! 172: system and invoking a daemon ! 173: (\fBuuxqt\fR) ! 174: to execute that command file and return the results. ! 175: .H 2 "INSTALLATION" ! 176: .P ! 177: The ! 178: \fBuucp\fR(1) ! 179: package is delivered ! 180: as part of the ! 181: standard UNIX system distribution. ! 182: It resides in its own subdirectory (called ! 183: \fIuucp\fR) ! 184: in the commands area and has its own make file ! 185: (\fIuucp.mk\fR). ! 186: The ! 187: \fBuucp\fR ! 188: package is installed as part of the normal distribution; ! 189: however, if it must be reinstalled for ! 190: any reason, then the sequence ! 191: .DS I ! 192: make \-f uucp.mk install ! 193: .DE ! 194: should be executed. ! 195: In addition, the distribution has default setting for uucp system ! 196: parameters, such as the available communication media. ! 197: If there are local differences, the \fIparms.h\fR ! 198: file should be modified before the ``make'' command is executed. ! 199: (See appendix I for details of the options for the parms.h file.) ! 200: .H 3 "Object Modules" ! 201: .P ! 202: The following object modules are installed as part ! 203: of the ! 204: \fBuucp\fR ! 205: make procedure. ! 206: .AL ! 207: .LI ! 208: \fBUucp\fR\*(EMThe file transfer command. ! 209: .LI ! 210: \fBUux\fR\*(EMThe remote execution command. ! 211: .LI ! 212: \fBUucico\fR\*(EMThe ! 213: \fBuucp\fR ! 214: network daemon. ! 215: .LI ! 216: \fBUustat\fR\*(EMNetwork status command. ! 217: .LI ! 218: \fBUusched\fR\*(EMFile tranfer daemon scheduler. ! 219: .LI ! 220: \fBUucheck\fR\*(EMThe \fIuucp\fR system files, directories, and Permissions ! 221: file checker. ! 222: .LI ! 223: \fBUuxqt\fR\*(EMThe remote execution daemon. ! 224: .LI ! 225: \fBUugetty\fR\*(EMA getty that can be used for lines/modems that are to ! 226: work as dialin and dialout ports. ! 227: .LI ! 228: \fBUulog\fR\*(EMA shell for looking at the various log files. ! 229: .LI ! 230: \fBUutry\fR\*(EMA shell for administrators that is used to try a remote ! 231: system with debugging options. ! 232: Note that the name has the first letter in upper case (Uutry). ! 233: .LI ! 234: Several shell procedures are also distributed; ! 235: these are started periodically by \fIcron\fR. ! 236: \fBUudemon.cleanup\fR is usually executed daily to clean up ! 237: various directories. ! 238: \fBUudemon.hour\fR is used to start the file transfer scheduler and ! 239: the command execution daemon. ! 240: \fBUudemon.admin\fR is available to send data to the uucp administrator ! 241: giving information about the status of the system. ! 242: And \fBuudemon.poll\fR is used for periodic polling of remote systems. ! 243: .LE ! 244: .H 3 "Password File" ! 245: .P ! 246: To allow remote systems to call ! 247: the local system, password entries must be made ! 248: for any ! 249: \fBuucp\fR ! 250: logins. ! 251: For example, ! 252: .DS ! 253: \s-1nuucp:zaaAA:6:1:UUCP.Admin:/usr/spool/uucppublic:/usr/lib/uucp/uucico\s+1 ! 254: .DE ! 255: Note that the ! 256: \fBuucico\fR ! 257: daemon is used for the ! 258: shell, ! 259: and the spool directory ! 260: is used as the working directory. ! 261: .P ! 262: There must also be an entry in the ! 263: \fIpasswd\fR file for a \fBuucp\fR administrative ! 264: login. ! 265: This login is the owner of all the \fBuucp\fR ! 266: object and spooled data files and is usually ``uucp''. ! 267: For example, the following is a entry in ! 268: \fI/etc/passwd\fR for this administrative login: ! 269: .DS I ! 270: uucp:zAvLCKp:5:1:UUCP.Admin:/usr/lib/uucp: ! 271: .DE ! 272: Note that the standard shell is used instead of ! 273: \fBuucico\fR. ! 274: If an owner other than ``uucp'' ! 275: is chosen, the \fImake\fR file for \fBuucp\fR ! 276: (\fI/usr/src/cmd/uucp/uucp.mk\fR) must be edited. ! 277: The line "OWNER=uucp" must be changed to reflect the ! 278: new owner login. ! 279: .H 3 "Devices File" ! 280: .P ! 281: The file ! 282: \fI/usr/lib/uucp/Devices\fR ! 283: (old name was \fI/usr/lib/uucp/L-devices\fR) ! 284: contains the device information needed ! 285: for calling other systems. ! 286: The format of the file is ! 287: .ml | ! 288: .DS I ! 289: Caller Line Line2 Class Dialer-Token-Pairs ! 290: .DE ! 291: where each field is ! 292: .VL 18 4 ! 293: .LI \fICaller\fR ! 294: The keywords available in this field are ! 295: .VL 9 0 ! 296: .LI Direct ! 297: for a hard-wired line used by cu for direct connections. ! 298: .LI ACU ! 299: to make the connection through an autodialer. ! 300: .LI \fINETWORK\fR ! 301: to make the connection through a switch where \fINETWORK\fR ! 302: is replaces by one of ! 303: Sytek, Unetserver, DK, Sytek, TCP. ! 304: .LI \fISYSTEM-NAME\fR ! 305: for hard-wired connections to a particular system where ! 306: \fISYSTEM-NAME\fR is replaced by the name of the system. ! 307: .LE ! 308: .LI \fILine\fR ! 309: This is the device name for the line (e.g., ! 310: \fIttyab\fR ! 311: for a direct line or hard-wired line to a system, ! 312: \fIcul0\fR ! 313: for a line connected to an ACU). ! 314: .LI \fILine2\fR ! 315: If the ACU keyword is specified and the device type is 801, ! 316: this field contains the ! 317: device name of the 801 dialing device ACU. ! 318: Otherwise, the field is ignored; however, a placeholder must be ! 319: used in this field (use '-' character for the placeholder). ! 320: .ml ! 321: .LI \fIClass\fR ! 322: For ACU, this can be just the speed, ! 323: or it can contain a letter and speed (e.g. D1200, C1200) ! 324: to differentiate between classes of dialers (Centrex, Dimension). ! 325: Some devices can be used at any speed, so the keyword ``Any'' ! 326: is used\*(EMthis line will match any speed requested in Systems. ! 327: Note: ! 328: If this field is ``Any'' and the Systems class field is ``Any'' ! 329: then the speed is taken from the default set in \fIparms.h\fR ! 330: by the \fIDEFAULT_BAUDRATE\fR constant. ! 331: (The Class field is currently ignored if an X.25 link is used.) ! 332: .ml | ! 333: .LI \fIDialer-Token-Pairs\fR ! 334: The rest of the line contains pairs of dialers and tokens. ! 335: Each pair represents a caller function and an argument to ! 336: pass to that function. ! 337: (The last token may be left blank if it is to represent a ! 338: phone number. ! 339: See examples below.) ! 340: Dialers that are supported are ! 341: .VL 18 0 ! 342: .LI 801 ! 343: standard 801 autodialer with 212 or 103 modem. ! 344: .LI penril ! 345: this is a penril autodialer. ! 346: .LI hayes ! 347: this is a hayes autodialer. ! 348: .LI ventel ! 349: this is a ventel autodialer. ! 350: .LI vadic ! 351: this is a vadic dialer. ! 352: .LI \fINETWORK\fR ! 353: one of the names listed for \fINETWORK\fR above. ! 354: .LI \fIOTHER-DIALERS\fR ! 355: other dialers can be constructed by putting information in ! 356: the \fIDialers\fR file. ! 357: See \fIDialers\fR section below. ! 358: .LE ! 359: .P ! 360: The token following the Dialer can usually be left blank; ! 361: this represents the phone number. ! 362: The string ``\\D'' can be used in place of the blank; ! 363: it means use the phone number given in the \fISystems\fR file ! 364: as the argument to the dialer routing. ! 365: .P ! 366: It is possible to have dialout modems on networks. ! 367: For these cases, the \fICaller\fR will be ACU and the ! 368: \fIDialer-Token-Pair\fR will be the token given to the ! 369: network routine to attach to the dialout modem. ! 370: These two fields will be followed by another \fIDialer-Token-Pair\fR, ! 371: the dialer routine name (e.g. ventel) and the phone number ! 372: (e.g. ``\\D'' or ``\\T'' or blank.) ! 373: .LE ! 374: .P ! 375: The following examples ! 376: illustrate various types of connections: ! 377: .TS ! 378: l l l l l . ! 379: ACU cul0 cua0 1200 801 ! 380: ACU cul1 cua1 300 801 ! 381: ACU vn0 - 1200 ventel ! 382: ACU vn0 - 300 ventel ! 383: ACU vd0 - 1200 vadic ! 384: ACU vd0 - V1200 vadic ! 385: ACU pn2 - 1200 penril ! 386: ACU pn2 - 300 penril ! 387: .TE ! 388: .ml ! 389: .P ! 390: /dev/cul0 and /dev/cul1 are 212 modems (cul1 may be a 103 type), ! 391: with 801s at /dev/cua0 and ! 392: /dev/cua1 respectively; /dev/vn0 is hooked to a ventel and can be used ! 393: at 1200 or 300 baud, and /dev/vd0 is hooked to a vadic. ! 394: There are ! 395: two entries for vadic so that sites that speak vadic tones only can be ! 396: flagged V1200 in \fISystems\fR. ! 397: (Actually, this assumes the vadic is a triple, ! 398: because sites that talk 212 tones will get the vadic as well as these two entries.) ! 399: There is also a penril dialer on /dev/pn2; ! 400: it can be used at either 300 or 1200 baud. ! 401: .P ! 402: .ml | ! 403: .tr ~\\ ! 404: .TS ! 405: l l l l l . ! 406: ACU culd0 - Any develcon vent ventel ~D ! 407: ACU culd1 - Any develcon vent ventel ~D ! 408: .TE ! 409: .tr ~ ! 410: .P ! 411: There are two ! 412: ventel attached to the develcon; the line is culd0. ! 413: The ``vent'' is the token given to the develcon switch to get to the ! 414: ventel modem. ! 415: The ``\\D'' specifies the telephone number ! 416: from the \fISystems\fR file. ! 417: .P ! 418: Note: ! 419: In addition to the ``\\D'', there will sometimes be a need for ! 420: passing a phone number to a built-in routine ! 421: (e.g. DK) after it is expanded using the \fIDialcodes\fR file. ! 422: In this case, a ``\\T'' symbol is used instead of the ``\\D''. ! 423: For example ! 424: .TS ! 425: l l l l l . ! 426: ACU - 0 Any DK dial.\T ! 427: .TE ! 428: .P ! 429: is an entry for using a dialer on a Datakit network. ! 430: .P ! 431: .TS ! 432: l l l l l . ! 433: raven ttyab - 9600 direct ! 434: Direct ttyab - 9600 direct ! 435: cbgbd x25.s0 - 9600 direct ! 436: .TE ! 437: .P ! 438: There is a direct lines, one (ttyab) is a null-modem type connection ! 439: with the other end on system raven ! 440: while the second (x25.s0) is an X.25 permanent virtual circuit connection ! 441: to machine cbgbd. ! 442: Note also the ``Direct'' line; ! 443: this is used if a user would like to use the command ! 444: .DS ! 445: cu -lttyab ! 446: .DE ! 447: to connect to machine ``raven''. ! 448: .H 4 "Naming Conventions" ! 449: .P ! 450: It is often useful when naming lines that are directly ! 451: connected between systems or that are dedicated to ! 452: calling other systems to choose a ! 453: naming scheme that conveys the use of the line. ! 454: In the earlier examples, the name ! 455: \fIttyab\fR ! 456: is used for the line that directly connects ! 457: two systems named ! 458: \fIa\fR ! 459: and ! 460: \fIb\fR. ! 461: Similarly, lines associated with calling ! 462: units are best given names that relate them to the ! 463: calling unit autodialer (note ! 464: the names ! 465: \fIcul0\fR ! 466: and ! 467: \fIcua0\fR ! 468: to specify the line and calling unit, respectively). ! 469: .H 3 "Dialers" ! 470: .P ! 471: Each line in the \fIDialers\fR file ! 472: is used to specify ! 473: the initial handshaking that should occur on a line before it ! 474: is made available for user data. ! 475: This initial handshaking is usually a sequence of ascii strings ! 476: that are transmitted and expected, ! 477: and is often used to dial a phone number using an ascii dialer ! 478: (such as a PENRIL 300/1200AD) or connect via a dataswitch to ! 479: another system on the dataswitch. ! 480: If the fifth field in the Devices file line is not ! 481: a built-in function name, ! 482: the field is used as an ! 483: index into the \fIDialers\fR file, ! 484: attempting to match the first field on each line. ! 485: In addition, each odd numbered field starting with the 7th position ! 486: is used as an index into the ``Dialers'' file. ! 487: .P ! 488: If the match succeeds, ! 489: the ``Dialers'' line is interpreted to perform ! 490: the dialer negotiations. ! 491: Field 1 match the 5th and additional odd numbered ! 492: fields in the ``Devices'' file. ! 493: The second field is used as a translate ! 494: string: ! 495: the first of each pair of characters in the string is ! 496: mapped to the second character in the pair in the phone number to ! 497: be dialed. ! 498: This is usually used to translate = and \- into whatever ! 499: the dialer requires for ``wait for dialtone'' and ``pause''. ! 500: .P ! 501: The remaining fields are ``expect''/``send'' strings ! 502: (seethe ``login'' section for an explaination of expect-send fields.) ! 503: Here are some sample line; ! 504: these will be distributed with the system and installed ! 505: as part of the installation procedures. ! 506: The administrator can modify them as required. ! 507: The escape characters, those beginning with ``\\'', have the same ! 508: meaning as specified in the ``Login'' section of the ! 509: ``Systems'' file below. ! 510: In addition to those mentioned in that section, ! 511: the `\\T'' and ``\\D'' are used to substitute the phone number ! 512: string passed to the dialing function: ! 513: ``\\T'' is expanded using the ``Dialcodes'' file and ! 514: ``\\D'' is the unexpanded string. ! 515: .P ! 516: .nf ! 517: .tr ~\\ ! 518: penril =W-P "" ~d > s~p9~c )-W~p~r~ds~p9~c-) y~c : ~E~TP > 9~c OK ! 519: ventel =&-% "" ~E~r~e~p $-~E~r~e~p-$ <K~T%%~r>~c ONLINE! ! 520: vadic =K-K "" ~005~p *-~005~p-*~005~p-* D~p BER? ~E~T~e ~r~c LINE ! 521: develcon "" "" ~pr~ps~c est:~007 ~D ~007 ! 522: direct ! 523: .fi ! 524: .P ! 525: The \fIpenril\fR entry executes as follows: ! 526: First the phone number argument is translated, ! 527: replacing any ``='' with a ``W'' (wait for dialtone) ! 528: and replacing any ``\-'' with a ``P'' (pause). ! 529: .P ! 530: The handshake given by the remainder of the line works as follows: ! 531: .VL 18 0 ! 532: .tr ~" ! 533: .LI ~~ ! 534: Wait for nothing. ! 535: .LI ~d ! 536: .tr ~\\ ! 537: Delay for 2 seconds. ! 538: .LI > ! 539: Wait for a >. ! 540: .LI s~p9~c ! 541: send an ``s'', pause for 1 seconds, send a 9, ! 542: send no terminating new-line. ! 543: .LI )\-W~p~r~ds~p9~c\-) ! 544: wait for a ``)''. ! 545: If it does not arrive, process the string between the ``\-'' characters ! 546: as follows. ! 547: Send a ``W'', pause, send a carriage-return, delay, send an ``s'', ! 548: pause, send ``9'', without a new-line, ! 549: and then wait for the ``)''. ! 550: .LI y~c ! 551: send a ``y''. ! 552: .LI : ! 553: wait for a ``:''. ! 554: .LI ~E~TP ! 555: enable echo checking. (From this point on, whenever a character is transmitted, ! 556: will wait for the character to be received before doing anything else.) ! 557: Then send the phone number followed by a penril \fIpause\fR character. ! 558: (The ~Tmeans take the phone number passed as argument and apply ! 559: the ``Dialcodes'' translation and the modem function translation ! 560: specified by field number 2 of this entry.) ! 561: .LI > ! 562: wait for a ``>''. ! 563: .LI 9~c ! 564: send a ``9'' without a new-line. ! 565: .LI OK ! 566: Wait for the string ``OK''. ! 567: .LE ! 568: .P ! 569: As another example, consider the \fIdevelcon\fR entry: ! 570: The is phone number is the token used by the switch, for example ! 571: the machine name to be connected.) ! 572: .VL 18 0 ! 573: .LI "" ! 574: wait for nothing. ! 575: .LI ~pr~ps ! 576: pause, send an ``r'', pause, send an ``s''. ! 577: .LI est:~007 ! 578: wait for the string ``est:'' followed by a bell character ! 579: (~007). ! 580: .LI ~T ! 581: send the token passed from the \fIDevices\fR file; ! 582: often the token in the phone number field from the ! 583: .ml ! 584: \fISystems\fR file. ! 585: .LI ~007 ! 586: wait for a bell. ! 587: .LE ! 588: .P ! 589: The ``direct'' line above indicates that for direct connections, ! 590: ne negotiation is required. ! 591: .H 3 "System File" ! 592: .P ! 593: Each entry in the \fI/usr/lib/uucp/Systems\fR file represents a system ! 594: that can be called by the local \fBuucp\fR programs. ! 595: In addition, the system can be configured to prevent ! 596: any system that does not appear in this file from ! 597: logging in. ! 598: (This is the default configuration; ! 599: it can be modified by changing ``parms.h'' before ! 600: compilation.) ! 601: More than one line may be present for a particular system; ! 602: the additional lines represent alternative ! 603: communication paths that will be tried in sequential order. ! 604: The fields are described below. ! 605: .VL 18 4 ! 606: .LI "\fISystem name\fR" ! 607: Name of the remote system. ! 608: .LI \fITime\fR ! 609: This is a string that indicates the days-of-week ! 610: and times-of-day when the system should ! 611: be called ! 612: (e.g., MoTuTh0800\-1730). ! 613: .P ! 614: The day portion may be a list containing ! 615: \fISu\fR, ! 616: \fIMo\fR, ! 617: \fITu\fR, ! 618: \fIWe\fR, ! 619: \fITh\fR, ! 620: \fIFr\fR, ! 621: \fISa\fR; ! 622: or it may be ! 623: .I Wk ! 624: for any week-day or ! 625: .I Any ! 626: for any day. ! 627: The time should be a range of times (e.g., 0800\-1230). ! 628: If no time portion is specified, any time ! 629: of day is assumed to be allowed for the call. ! 630: Note that a time range that spans 0000 is permitted; ! 631: 0800-0600 means all times are allowed \fIexcept\fR ! 632: times between 6 and 8 am. ! 633: Multiple time fields may be include using a ``,'' separator ! 634: (e.g. Wk1800-0600,Sa,Su). ! 635: An optional subfield is available to specify the minimum time (minutes) ! 636: before a retry following a failed attempt. ! 637: (Note that if this subfield is used, it will override the normal ! 638: exponential backoff algorithm for retry upon failure.) ! 639: This subfield is separated by a ``;''. ! 640: .LI \fICaller\fR ! 641: The available callers are ACU, Micom, Develcon, Sytek. ! 642: .LI \fIClass\fR ! 643: This is usually the line speed for the call (e.g., 300, 1200, Any). ! 644: If the field is not used for a particular entry, a ``\-'' can be used ! 645: as the place holder. ! 646: When the value is ``Any'', ! 647: it means match any speed found for the particular caller. ! 648: If both the Systems and Devices value is ``Any'', then the value is ! 649: taken from the \fIDEFAULT_BAUDRATE\fR constant defined in \fIparms.h\fR. ! 650: .LI \fIPhone\fR ! 651: For autodialers, the phone number is made up of an optional ! 652: alphabetic abbreviation (dialing prefix) and a numeric part. ! 653: The abbreviation should be one that appears in the ! 654: .I "Dialcodes (old name was L-dialcodes)" ! 655: file (e.g., mh1212, boston555\-1212). ! 656: For direct connections, the phone field is ignored. ! 657: (A ``\-'' should be used as a place holder.) ! 658: .P ! 659: For \fINETWORK\fR access as mentioned above ! 660: such as \fISwitch\fR, \fIDevelcon\fR, and \fIMicom\fR, ! 661: the phone field is the token the switch needs to get to the ! 662: particular system\*(EMit is used by the caller functions specified ! 663: in the ``Devices'' file. ! 664: .LI \fILogin\fR ! 665: The login information is given as a series of ! 666: fields and subfields in the format ! 667: .DS I ! 668: [ expect\ \ send ] .\|.\|. ! 669: .DE ! 670: where ! 671: \fIexpect\fR ! 672: is the string expected to be read and ! 673: .I send ! 674: is the string to be sent when the ! 675: .I expect ! 676: string is received. ! 677: This is simimilar processing to the negotiation specified in the ! 678: ``Dialers'' file. ! 679: The expect field may be made up of subfields ! 680: of the form ! 681: .DS I ! 682: expect[\-send\-expect] .\|.\|. ! 683: .DE ! 684: where the ! 685: .I send ! 686: is sent if the prior ! 687: .I expect ! 688: is ! 689: .I not ! 690: successfully read ! 691: and the ! 692: .I expect ! 693: following the ! 694: .I send ! 695: is the next expected string. ! 696: (For example, login--login will expect ! 697: .I login ; ! 698: if it gets it, the program will go on to the next field; ! 699: if it does not get ! 700: .I login , ! 701: it will send ! 702: .I null ! 703: followed by a new line, ! 704: then expect ! 705: .I login ! 706: again.) ! 707: If no characters are initially expected from the remote ! 708: machine, the string ``""'' (a null string) should be used in the ! 709: first expect field. ! 710: Note that all send fields will be sent followed by a new-line unless ! 711: the send string is terminated with a \\c. ! 712: .sp ! 713: There are two special names available to be sent ! 714: during the login sequence. ! 715: The string ! 716: .I EOT ! 717: will send an EOT character, and the string ! 718: \fIBREAK\fR ! 719: will try to send ! 720: a ! 721: \fIBREAK\fR ! 722: character. ! 723: .LE ! 724: .P ! 725: There are several character strings that cause specific actions ! 726: when they are a part of a string sent during the login sequence. ! 727: .VL 10 2 ! 728: .tr ~\\ ! 729: .LI ~K ! 730: insert a BREAK. ! 731: .LI ~N ! 732: Send a null character. ! 733: .LI ~b ! 734: Send a backspace character. ! 735: .LI ~c ! 736: If at the end of a string, suppress the new-line that ! 737: is normally sent. ! 738: Ignored otherwise. ! 739: .LI ~d ! 740: Delay two seconds before sending or reading more characters. ! 741: .LI ~n ! 742: Send a new-line character. ! 743: .LI ~p ! 744: insert a pause (1 second). ! 745: .LI ~r ! 746: Send a carrage-return. ! 747: .LI ~s ! 748: Send a space character. ! 749: .LI ~t ! 750: Send a tab character. ! 751: .LI ~~ ! 752: Send a ~ character. ! 753: .LI EOT ! 754: Send \fIeot\fR character (actually \fIeot\fR new-line is sent twice). ! 755: .LI BREAK ! 756: Send a break character. ! 757: .LI ~ddd ! 758: Collapse the octal digits (ddd) into ! 759: a single character and send that character. ! 760: .br ! 761: .tr ~~ ! 762: .LE ! 763: .P ! 764: These character strings are useful for making \fBuucp\fR ! 765: communicate via direct lines to data switches. ! 766: .P ! 767: A typical entry in the \fISystems\fR file would be ! 768: .DS I ! 769: sys\ \ Any\ \ ACU\ \ 300\ \ mh7654\ \ login\-\-login\ \ uucp\ \ ssword:\ \ word ! 770: .DE ! 771: A \fISystems\fR file entry for a direct connection would be ! 772: .DS I ! 773: hawk\ \ Any\ \ hawk\ \ 9600\ \ \-\ \ login\-\-login\ \ uucp\ \ ssword:\ \ word ! 774: .DE ! 775: The corresponding \fIDevice\fR file entry would be ! 776: .DS I ! 777: hawk\ \ ttyhh\ \ \-\ \ 9600\ \ direct ! 778: .DE ! 779: The ``expect'' algorithm matches all or part of the input ! 780: string as illustrated in the password field above. ! 781: .H 3 "Dialing Prefixes" ! 782: .P ! 783: This file contains the dial-code abbreviations used ! 784: in the ! 785: .I Systems ! 786: file (e.g., py, mh, boston). ! 787: The entry format is ! 788: .DS I ! 789: abb\ \ dial-seq ! 790: .DE ! 791: where ! 792: .I abb ! 793: is the abbreviation and ! 794: .I "dial-seq" ! 795: is the dial sequence to call that location. ! 796: .P ! 797: The line ! 798: .DS I ! 799: py\ \ 165\- ! 800: .DE ! 801: would be set up so that entry py7777 would ! 802: send 165\-7777 to the dial unit. ! 803: .H 3 "Permissions File" ! 804: The Permissions file replaces the USERFILE for uucp. ! 805: (The USERFILE was used in previous version of uucp to specify ! 806: file access permissions). ! 807: Its purpose is to specify the permission that remote sites ! 808: have with respect to login, file access, and command ! 809: execution. ! 810: Options provide for restricting the ability to request files and ! 811: the ability to receive files queued by the local site. ! 812: In addition, an option is available to specify the commands that a ! 813: remote site can execute on the local system. ! 814: .P ! 815: The installation procedure will construct a default file if one does ! 816: not already exist in \fI/usr/lib/uucp/Permissions\fR. ! 817: This default file will provide a high degree of restriction on remote sites. ! 818: A line will be constructed for each login in the \fI/etc/passwd\fR ! 819: file that has \fI/usr/lib/uucp/uucico\fR as the shell field. ! 820: Each line will look like ! 821: .DS CB ! 822: LOGNAME=nuucp ! 823: .DE ! 824: .P ! 825: It states that login ``nuucp'' has all the default permissions/restrictions: ! 826: .BL ! 827: .LI ! 828: The remote site can send files exclusively to the ! 829: \fI/usr/spool/uucppublic\fR directory tree. ! 830: .LI ! 831: The remote site can \fINOT\fR request to receive any files. ! 832: .LI ! 833: \fINO\fR files that are queued for the remote site will be transferred ! 834: during the present session. ! 835: .LI ! 836: The only commands that can be executed are the defaults. ! 837: (The default commands are set in parms.h. ! 838: The distribution has them set to \fIrmail\fR and \fIrnews\fR.) ! 839: (See appendix IV for full details of the \fIPermissions\fR file setup.) ! 840: .LE ! 841: .H 3 "Maxuuxqts File" ! 842: The \fI/usr/lib/uucp/Maxuuxqts\fR file limits the number of simultaneous \fIuuxqt\fR ! 843: programs running; ! 844: it contains an ASCII number. ! 845: The installation procedure sets the number to two; ! 846: the administrator may want to change this number to meet local needs. ! 847: If you get a lot of traffic from mail or netnews, you may want to increase ! 848: the number to decrease wait time. ! 849: But remember, the more you have running, the higher the load on the system. ! 850: .H 3 "Maxuuscheds File" ! 851: The \fI/usr/lib/uucp/Maxuuscheds\fR file limits the number of simultaneous \fIuusched\fR ! 852: programs running; ! 853: it contains an ASCII number. ! 854: Each \fIuusched\fR running will have one ! 855: \fIuucico\fR associated with it; ! 856: limiting the number will throttle the load on the system. ! 857: The limit should be less than the number of outgoing lines used ! 858: by uucp; ! 859: a smaller number is often desirable. ! 860: The installation procedure sets the number to two; ! 861: the administrator may want to change this number to meet local needs. ! 862: But remember, the more you have running, the higher the load on the system. ! 863: .H 3 "remote.unknown Shell" ! 864: This shell program is called when a remote site that is not in the ! 865: \fISystems\fR file calls in to start a conversation. ! 866: The shell distributed with the system appends the name and time ! 867: information to a file, \fI/usr/spool/uucp/.Admin/Foreign\fR. ! 868: The calling of the shell can be turned off by an option in parms.h. ! 869: In addition, the shell can be modified to meet local needs. ! 870: As distributed, it contains the following: ! 871: .DS I ! 872: FOREIGN=/usr/spool/uucp/.Admin/Foreign ! 873: echo "`date`: call from system $1" >> $FOREIGN ! 874: .P ! 875: Since it is a shell, it can be easily modified. ! 876: For example, it can send mail to the administrator. ! 877: .DE ! 878: .H 3 "uudemon Shells" ! 879: .P ! 880: .H 2 "ADMINISTRATION" ! 881: .P ! 882: The role of the ! 883: \fIuucp\fR ! 884: administrator depends heavily ! 885: on the amount of traffic that enters or leaves a system and ! 886: the quality of the connections that can be made to and from that system. ! 887: For the average system, only a modest amount of traffic (100 to 200 files ! 888: per day) pass through the system and little if any ! 889: intervention with the ! 890: \fIuucp\fR ! 891: automatic cleanup functions is necessary. ! 892: Systems that pass large numbers of files ! 893: (200 to 10,000) ! 894: may require more attention when problems occur. ! 895: The following parts describe the routine administrative ! 896: tasks that must be performed by the administrator ! 897: or are automatically performed by ! 898: the ! 899: \fIuucp\fR ! 900: package. ! 901: The part on problems describes what ! 902: are the most frequent problems and how to effectively ! 903: deal with them. ! 904: .H 3 "Cleanup" ! 905: .P ! 906: The biggest problem ! 907: in a dialup network like ! 908: \fIuucp\fR ! 909: is dealing with the backlog of jobs that cannot ! 910: be transmitted to other systems. ! 911: The following cleanup activities should be routinely performed. ! 912: .H 4 "Cleanup of Undeliverable Jobs" ! 913: .P ! 914: The \fIuustat\fR program should be invoked regularly to give information ! 915: about the status of connection to various machines, and the size and ! 916: age of the queued requests. ! 917: The \fBuudemon.admin\fR shell should be started by \fBcron\fR(1) ! 918: at least once per day\*(EMthis will send the administrator the ! 919: current status. ! 920: Of particular interest are the age (in days) ! 921: of the oldest request in each queue, ! 922: the number of times failure to reach that system has occurred, and ! 923: the reason for failure. ! 924: In addition, the age of the oldest execution request (X. file) is ! 925: also given. ! 926: .P ! 927: Each spool directory will contain some ! 928: X. files, C. files, and D. files. ! 929: When work can not be accomplished, these files should be ! 930: removed. ! 931: The \fBuucleanup\fR program, which is run from ! 932: \fBuudemon.cleanup\fR will provide this function. ! 933: Options to \fBuucleanup\fR specify the age for sending a ! 934: warning message to the requestor and age for deleting the ! 935: various file. ! 936: Note that before deleting, the program tries to figure out ! 937: what the job was (e.g. a mail job) ! 938: and if possible, tries to send it to the receiver, rather than ! 939: the sender. ! 940: If this is not possible, it gets returned to the sender. ! 941: For plain file transfers, the requestor is informed of the ! 942: file name(s), date, and destination of the request. ! 943: .H 4 "Cleanup of the Public Area" ! 944: .P ! 945: In order to keep the local file system from overflowing ! 946: when files are sent to the public area, ! 947: the \fBuudemon.cleanup\fR procedure is set up with a ! 948: \fBfind\fR command to remove any files that are older than 7 days ! 949: and directories that are empty. ! 950: This interval may need to be shortened if ! 951: there is not sufficient space to devote to the public area. ! 952: .P ! 953: Since the spool directories are very dynamic, they may grow ! 954: large before transfers take place, it is a good idea to ! 955: reorganize the structure. ! 956: The best way to do this is to put some code in \fI/etc/rc\fR to ! 957: be executed once per week. ! 958: For example ! 959: .DS I ! 960: # ! 961: # clean up /usr/spool/uucp ! 962: # Most cleanup is now done by uudemon.cleanup ! 963: # so just do copy out and back ! 964: # ! 965: DY=`date +'%w'` ! 966: HR=`date +'%H'` ! 967: echo "cleanup uucp spool directories" ! 968: echo "FULL CLEANUP ONLY ON MONDAY before 9am " ! 969: if [ $DY -eq 1 -a $HR -lt 9 ] ! 970: then ! 971: echo "MONDAY--DO FULL CLEANUP!" ! 972: cd /usr/spool/uucp ! 973: mkdir ../nuucp ! 974: chown uucp ../nuucp ! 975: chgrp uucp ../nuucp ! 976: find . -print|cpio -pdml ../nuucp ! 977: cd .. ! 978: mv uucp ouucp ! 979: mv nuucp uucp ! 980: rm -rf ouucp ! 981: fi ! 982: chown uucp /dev/cu[al]* ! 983: chgrp uucp /dev/cu[al]* ! 984: chmod 0644 /dev/cul* ! 985: chmod 0222 /dev/cua* ! 986: ! 987: # cleanup uucp LCK files so that a new ! 988: # process doesn't accidently get a pid ! 989: # corresponding to a left around LCK file-- ! 990: # thus preventing it from being removed. ! 991: echo "cleanup /usr/spool/locks" ! 992: rm -f /usr/spool/locks/* ! 993: ! 994: echo "done uucp directory cleanup" ! 995: ! 996: ! 997: .DE ! 998: .H 4 "Compaction of Log Files" ! 999: .P ! 1000: This version of \fBuucp\fR has individual log files for each system ! 1001: and each program (e.g. system \fIeagle\fR has a logfile for ! 1002: \fIuucico\fR requests and a logfile for \fIuuxqt\fR execution requests). ! 1003: The \fIuulog\fR shell gives the user access to the information in these ! 1004: files by system name. ! 1005: These files are combined and stored in directory ! 1006: \fI/usr/lib/uucp/.Old\fR whenever \fBuudemon.cleanup\fR ! 1007: is executed. ! 1008: The daemon saves two days files; this can be easily changed by the ! 1009: administrator. ! 1010: If space is a problem, the administrator might consider reducing the ! 1011: number of days the files are kept, or modify the shell to compact ! 1012: the files using the \fBpack\fR command. ! 1013: .H 3 "Polling Other Systems" ! 1014: .P ! 1015: Systems that are passive members of the network ! 1016: must be polled by other systems ! 1017: in order for their files to be sent. ! 1018: This can be arranged by using the ! 1019: \fBuudemon.poll\fR shell. ! 1020: \fBUudemon.poll\fR read the \fI/usr/lib/uucp/Poll\fR file which contains ! 1021: the systems and times to poll them. ! 1022: The lines contain the name of the remote to call followed by a TAB ! 1023: character and then a space separated list of times to poll. ! 1024: For example, ! 1025: .sp ! 1026: eagle 0 4 8 12 16 20 ! 1027: .sp ! 1028: will provide polling of system eagle every four hours. ! 1029: Note that \fBuudemon.poll\fR does not actually do the poll, it merely ! 1030: sets up a polling C. file in the spool directory that will be ! 1031: seen by the scheduler started by \fBuudemon.hour\fR. ! 1032: ! 1033: .H 3 Problems ! 1034: .P ! 1035: The following sections list the most frequent problems ! 1036: that appear on systems that make heavy use of ! 1037: \fBuucp\fR(1). ! 1038: .H 4 "Out of Space" ! 1039: .P ! 1040: The file system used to spool ! 1041: incoming or outgoing jobs ! 1042: can run out of space and prevent jobs from being spawned ! 1043: or received from remote systems. ! 1044: The inability to receive jobs is the worse of the two conditions. ! 1045: When file space does become available, the system will be ! 1046: flooded ! 1047: with the backlog of traffic. ! 1048: .H 4 "Bad ACU and Modems" ! 1049: .P ! 1050: The ACU and incoming modems ! 1051: occasionally cause problems that make it difficult to contact ! 1052: other systems or to receive files. ! 1053: These problems are usually readily identifiable since ! 1054: the status files accessed by \fBuustat\fR give counts and ! 1055: reasons for contact failure. ! 1056: If a bad line is suspected, it is useful to use ! 1057: the ! 1058: \fBcu\fR(1) ! 1059: command to ! 1060: try calling another system using the suspected line. ! 1061: This method could also be used to check the login/password ! 1062: information and phone number. ! 1063: .H 4 "Administrative Problems" ! 1064: .P ! 1065: Some ! 1066: \fBuucp\fR ! 1067: networks have so many members that it is difficult ! 1068: to keep track of changing passwords, ! 1069: changing phone numbers, ! 1070: or changing logins on remote systems. ! 1071: This can be a very costly problem ! 1072: since ACU's will be tied up calling a system that cannot be reached. ! 1073: .H 2 "DEBUGGING" ! 1074: .P ! 1075: In order to verify that a system on the network can be contacted, ! 1076: the \fBuucico\fR ! 1077: daemon can be invoked from a user's terminal directly. ! 1078: A shell procedure \fBUutry\fR is distributed for this purpose; ! 1079: the administrator will have to install it in an appropriate place. ! 1080: For example, to verify that ! 1081: \fImhtsd\fR ! 1082: can be contacted, try ! 1083: .DS I ! 1084: Uutry mhtsd ! 1085: .DE ! 1086: This will start the transfer daemon (\fBuucico\fR) with a moderate ! 1087: amount of debugging output, putting the output into a temporary ! 1088: file (/tmp/mhtsa) and executing a \fItail -f\fR command so the ! 1089: administrator can hit a BREAK to get back to the shell, while ! 1090: being able to come back at a later time to look at the output. ! 1091: .P ! 1092: If that works, the administrator can attempt to transfer a file ! 1093: while watching the debugging output. ! 1094: Procede as follows ! 1095: .DS I ! 1096: uucp -r some\-file mhtsd!~/some\-name ! 1097: .DE ! 1098: This will queue a job but not start the transfer daemon. ! 1099: Now proceed as before using \fBUutry\fR. ! 1100: If any of these steps fail, a support person may be needed to ! 1101: diagnose the problem. ! 1102: The output of the above steps will make it easier. ! 1103: .P ! 1104: The file \fI/usr/spool/uucp/.Admin/errors\fR ! 1105: contains error indications, ! 1106: conditions that causes one of the \fBuucp\fR programs to abort ! 1107: (\fIASSERT\fR errors). ! 1108: An explanation of these is given in ! 1109: in Appendix II along with an explanation of the messages one ! 1110: can see as output from \fBuustat -q\fR. ! 1111: Most of these will never occur and indicate that something is wrong ! 1112: with your system or the \fBuucp\fR software. ! 1113: However, the \fIPKXSTART\fR will occur and generally means that the ! 1114: other side aborted during a conversation in a non recoverable way; ! 1115: these can be generally ignored.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.