forked from quinot/taylor-uucp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
uucp.texi
8485 lines (7017 loc) · 335 KB
/
uucp.texi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename uucp.info
@settitle Taylor UUCP
@setchapternewpage odd
@c %**end of header
@iftex
@finalout
@end iftex
@ifinfo
@format
START-INFO-DIR-ENTRY
* UUCP: (uucp). Transfer mail and news across phone lines.
END-INFO-DIR-ENTRY
@end format
This file documents Taylor UUCP, version 1.07.
Copyright @copyright{} 1992, 1993, 1994, 1995, 2002 Ian Lance Taylor
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries a copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that the
section entitled ``Copying'' are included exactly as in the original, and
provided that the entire resulting derived work is distributed under the
terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that the section entitled ``Copying'' may be included in a
translation approved by the author instead of in the original English.
@end ifinfo
@titlepage
@title Taylor UUCP
@subtitle Version 1.07
@author Ian Lance Taylor @email{ian@@airs.com}
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1992, 1993, 1994, 1995, 2002 Ian Lance Taylor
Published by Ian Lance Taylor @email{ian@@airs.com}.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that the
section entitled ``Copying'' are included exactly as in the original, and
provided that the entire resulting derived work is distributed under the
terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that the section entitled ``Copying'' may be included in a
translation approved by the author instead of in the original English.
@end titlepage
@node Top, Copying, (dir), (dir)
@top Taylor UUCP 1.07
This is the documentation for the Taylor UUCP package, version 1.07.
The programs were written by Ian Lance Taylor. The author can be
reached at @email{ian@@airs.com}.
There is a mailing list for discussion of the package. The list is
hosted by Eric Schnoebelen at @email{cirr.com}. To join (or get off) the
list, send mail to @email{taylor-uucp-request@@gnu.org}. Mail to this
address is answered by the majordomo program. To join the list, send
the message @samp{subscribe @var{address}} where @var{address} is your
e-mail address. To send a message to the list, send it to
@email{taylor-uucp@@gnu.org}. There is an archive
of all messages sent to the mailing list at
@url{http://lists.cirr.com}.
@menu
* Copying:: Taylor UUCP Copying Conditions
* Introduction:: Introduction to Taylor UUCP
* Invoking the UUCP Programs:: Invoking the UUCP Programs
* Installing Taylor UUCP:: Installing Taylor UUCP
* Using Taylor UUCP:: Using Taylor UUCP
* Configuration Files:: Taylor UUCP Configuration Files
* Protocols:: UUCP Protocol Descriptions
* Hacking:: Hacking Taylor UUCP
* Acknowledgements:: Acknowledgements
* Index (concepts):: Concept Index
* Index (configuration file):: Index to New Configuration Files
--- The Detailed Node Listing ---
Invoking the UUCP Programs
* Standard Options:: Standard Options for the UUCP Programs
* Invoking uucp:: Invoking uucp
* Invoking uux:: Invoking uux
* Invoking uustat:: Invoking uustat
* Invoking uuname:: Invoking uuname
* Invoking uulog:: Invoking uulog
* Invoking uuto:: Invoking uuto
* Invoking uupick:: Invoking uupick
* Invoking cu:: Invoking cu
* Invoking uucico:: Invoking uucico
* Invoking uuxqt:: Invoking uuxqt
* Invoking uuchk:: Invoking uuchk
* Invoking uuconv:: Invoking uuconv
* Invoking uusched:: Invoking uusched
Invoking uucp
* uucp Description:: Description of uucp
* uucp Options:: Options Supported by uucp
Invoking uux
* uux Description:: Description of uux
* uux Options:: Options Supported by uux
* uux Examples:: Examples of uux Usage
Invoking uustat
* uustat Description:: Description of uustat
* uustat Options:: Options Supported by uustat
* uustat Examples:: Examples of uustat Usage
Invoking cu
* cu Description:: Description of cu
* cu Commands:: Commands Supported by cu
* cu Variables:: Variables Supported by cu
* cu Options:: Options Supported by cu
Invoking uucico
* uucico Description:: Description of uucico
* uucico Options:: Options Supported by uucico
Installing Taylor UUCP
* Compilation:: Compiling Taylor UUCP
* Testing the Compilation:: Testing the Compilation
* Installing the Binaries:: Installing the Binaries
* Configuration:: Configuring Taylor UUCP
* Testing the Installation:: Testing the Installation
Using Taylor UUCP
* Calling Other Systems:: Calling Other Systems
* Accepting Calls:: Accepting Calls
* Mail and News:: Using UUCP for Mail and News
* The Spool Directory Layout:: The Spool Directory Layout
* Spool Directory Cleaning:: Cleaning the UUCP Spool Directory
Using UUCP for Mail and News.
* Sending mail or news:: Sending mail or news via UUCP
* Receiving mail or news:: Receiving mail or news via UUCP
The Spool Directory Layout
* System Spool Directories:: System Spool Directories
* Status Directory:: Status Spool Directory
* Execution Subdirectories:: Execution Spool Subdirectories
* Other Spool Subdirectories:: Other Spool Subdirectories
* Spool Lock Files:: Spool Directory Lock Files
Taylor UUCP Configuration Files
* Configuration Overview:: Configuration File Overview
* Configuration File Format:: Configuration File Format
* Configuration Examples:: Examples of Configuration Files
* Time Strings:: How to Write Time Strings
* Chat Scripts:: How to Write Chat Scripts
* config File:: The Main Configuration File
* sys File:: The System Configuration File
* port File:: The Port Configuration Files
* dial File:: The Dialer Configuration Files
* UUCP Over TCP:: UUCP Over TCP
* Security:: Security Issues
Examples of Configuration Files
* config File Examples:: Examples of the Main Configuration File
* Leaf Example:: Call a Single Remote Site
* Gateway Example:: The Gateway for Several Local Systems
The Main Configuration File
* Miscellaneous (config):: Miscellaneous config File Commands
* Configuration File Names:: Using Different Configuration Files
* Log File Names:: Using Different Log Files
* Debugging Levels:: Debugging Levels
The System Configuration File
* Defaults and Alternates:: Using Defaults and Alternates
* Naming the System:: Naming the System
* Calling Out:: Calling Out
* Accepting a Call:: Accepting a Call
* Protocol Selection:: Protocol Selection
* File Transfer Control:: File Transfer Control
* Miscellaneous (sys):: Miscellaneous sys File Commands
* Default sys File Values:: Default Values
Calling Out
* When to Call:: When to Call
* Placing the Call:: Placing the Call
* Logging In:: Logging In
UUCP Over TCP
* TCP Client:: Connecting to Another System Over TCP
* TCP Server:: Running a TCP Server
UUCP Protocol Internals
* UUCP Protocol Sources:: Sources for UUCP Protocol Information
* UUCP Grades:: UUCP Grades
* UUCP Lock Files:: UUCP Lock Files
* Execution File Format:: Execution File Format
* UUCP Protocol:: UUCP Protocol
* g Protocol:: g protocol
* f Protocol:: f protocol
* t Protocol:: t protocol
* e Protocol:: e protocol
* Big G Protocol:: G protocol
* i Protocol:: i protocol
* j Protocol:: j protocol
* x Protocol:: x protocol
* y Protocol:: y protocol
* d Protocol:: d protocol
* h Protocol:: h protocol
* v Protocol:: v protocol
UUCP Protocol
* The Initial Handshake:: The Initial Handshake
* UUCP Protocol Commands:: UUCP Protocol Commands
* The Final Handshake:: The Final Handshake
UUCP Protocol Commands
* The S Command:: The S Command
* The R Command:: The R Command
* The X Command:: The X Command
* The E Command:: The E Command
* The H Command:: The H Command
Hacking Taylor UUCP
* System Dependence:: System Dependence
* Naming Conventions:: Naming Conventions
* Patches:: Patches
@end menu
@node Copying, Introduction, Top, Top
@unnumbered Taylor UUCP Copying Conditions
This package is covered by the GNU Public License. See the file
@file{COPYING} for details. If you would like to do something with this
package that you feel is reasonable, but you feel is prohibited by the
license, contact me to see if we can work it out.
The rest of this section is some descriptive text from the Free Software
Foundation.
All the programs, scripts and documents relating to Taylor UUCP are
@dfn{free}; this means that everyone is free to use them and free to
redistribute them on a free basis. The Taylor UUCP-related programs are
not in the public domain; they are copyrighted and there are
restrictions on their distribution, but these restrictions are designed
to permit everything that a good cooperating citizen would want to do.
What is not allowed is to try to prevent others from further sharing any
version of these programs that they might get from you.
Specifically, we want to make sure that you have the right to give away
copies of the programs that relate to Taylor UUCP, that you receive
source code or else can get it if you want it, that you can change these
programs or use pieces of them in new free programs, and that you know
you can do these things.
To make sure that everyone has such rights, we have to forbid you to
deprive anyone else of these rights. For example, if you distribute
copies of the Taylor UUCP related programs, you must give the recipients
all the rights that you have. You must make sure that they, too,
receive or can get the source code. And you must tell them their
rights.
Also, for our own protection, we must make certain that everyone finds
out that there is no warranty for the programs that relate to Taylor
UUCP. If these programs are modified by someone else and passed on, we
want their recipients to know that what they have is not what we
distributed, so that any problems introduced by others will not reflect
on our reputation.
The precise conditions of the licenses for the programs currently being
distributed that relate to Taylor UUCP are found in the General Public
Licenses that accompany them.
@node Introduction, Invoking the UUCP Programs, Copying, Top
@chapter Introduction to Taylor UUCP
General introductions to UUCP are available, and perhaps one day I will
write one. In the meantime, here is a very brief one that concentrates
on the programs provided by Taylor UUCP.
Taylor UUCP is a complete UUCP package. It is covered by the GNU Public
License, which means that the source code is always available. It is
composed of several programs; most of the names of these programs are
based on earlier UUCP packages.
@table @command
@item uucp
The @command{uucp} program is used to copy file between systems. It is
similar to the standard Unix @command{cp} program, except that you can
refer to a file on a remote system by using @samp{system!} before the
file name. For example, to copy the file @file{notes.txt} to the system
@samp{airs}, you would say @samp{uucp notes.txt airs!~/notes.txt}. In
this example @samp{~} is used to name the UUCP public directory on
@samp{airs}. For more details, see @ref{Invoking uucp, uucp}.
@item uux
The @command{uux} program is used to request the execution of a program
on a remote system. This is how mail and news are transferred over
UUCP. As with @command{uucp}, programs and files on remote systems may
be named by using @samp{system!}. For example, to run the
@command{rnews} program on @samp{airs}, passing it standard input, you
would say @samp{uux - airs!rnews}. The @option{-} means to read standard
input and set things up such that when @command{rnews} runs on
@samp{airs} it will receive the same standard input. For more details,
see @ref{Invoking uux, uux}.
@end table
Neither @command{uucp} nor @command{uux} actually do any work
immediately. Instead, they queue up requests for later processing.
They then start a daemon process which processes the requests and calls
up the appropriate systems. Normally the system will also start the
daemon periodically to check if there is any work to be done. The
advantage of this approach is that it all happens automatically. You
don't have to sit around waiting for the files to be transferred. The
disadvantage is that if anything goes wrong it might be a while before
anybody notices.
@table @command
@item uustat
The @command{uustat} program does many things. By default it will
simply list all the jobs you have queued with @command{uucp} or
@command{uux} that have not yet been processed. You can use
@command{uustat} to remove any of your jobs from the queue. You can
also it use it to show the status of the UUCP system in various ways,
such as showing the connection status of all the remote systems your
system knows about. The system administrator can use @command{uustat}
to automatically discard old jobs while sending mail to the user who
requested them. For more details, see @ref{Invoking uustat, uustat}.
@item uuname
The @command{uuname} program by default lists all the remote systems
your system knows about. You can also use it to get the name of your
local system. It is mostly useful for shell scripts. For more details,
see @ref{Invoking uuname, uuname}.
@item uulog
The @command{uulog} program can be used to display entries in the UUCP
log file. It can select the entries for a particular system or a
particular user. You can use it to see what has happened to your queued
jobs in the past. For more details, see @ref{Invoking uulog, uulog}.
@item uuto
@item uupick
@command{uuto} is a simple shell script interface to @command{uucp}. It
will transfer a file, or the contents of a directory, to a remote
system, and notify a particular user on the remote system when it
arrives. The remote user can then retrieve the file(s) with
@command{uupick}. For more details, see @ref{Invoking uuto, uuto}, and
see @ref{Invoking uupick, uupick}.
@item cu
The @command{cu} program can be used to call up another system and
communicate with it as though you were directly connected. It can also
do simple file transfers, though it does not provide any error checking.
For more details, @ref{Invoking cu, cu}.
@end table
These eight programs just described, @command{uucp}, @command{uux},
@command{uuto}, @command{uupick}, @command{uustat}, @command{uuname},
@command{uulog}, and @command{cu} are the user programs provided by
Taylor UUCP@. @command{uucp}, @command{uux}, and @command{uuto} add
requests to the work queue, @command{uupick} extracts files from the
UUCP public directory, @command{uustat} examines the work queue,
@command{uuname} examines the configuration files, @command{uulog}
examines the log files, and @command{cu} just uses the UUCP
configuration files.
The real work is actually done by two daemon processes, which are
normally run automatically rather than by a user.
@table @command
@item uucico
The @command{uucico} daemon is the program which actually calls the
remote system and transfers files and requests. @command{uucico} is
normally started automatically by @command{uucp} and @command{uux}.
Most systems will also start it periodically to make sure that all work
requests are handled. @command{uucico} checks the queue to see what
work needs to be done, and then calls the appropriate systems. If the
call fails, perhaps because the phone line is busy, @command{uucico}
leaves the requests in the queue and goes on to the next system to call.
It is also possible to force @command{uucico} to call a remote system
even if there is no work to be done for it, so that it can pick up any
work that may be queued up remotely. For more details, see
@ref{Invoking uucico, uucico}.
@need 1000
@item uuxqt
The @command{uuxqt} daemon processes execution requests made by the
@command{uux} program on remote systems. It also processes requests
made on the local system which require files from a remote system. It
is normally started by @command{uucico}. For more details, see
@ref{Invoking uuxqt, uuxqt}.
@end table
Suppose you, on the system @samp{bantam}, want to copy a file to the
system @samp{airs}. You would run the @command{uucp} command locally,
with a command like @samp{uucp notes.txt airs!~/notes.txt}. This would
queue up a request on @samp{bantam} for @samp{airs}, and would then
start the @command{uucico} daemon. @command{uucico} would see that
there was a request for @samp{airs} and attempt to call it. When the
call succeeded, another copy of @command{uucico} would be started on
@samp{airs}. The two copies of @command{uucico} would tell each other
what they had to do and transfer the file from @samp{bantam} to
@samp{airs}. When the file transfer was complete the @command{uucico}
on @samp{airs} would move it into the UUCP public directory.
UUCP is often used to transfer mail. This is normally done
automatically by mailer programs. When @samp{bantam} has a mail message
to send to @samp{ian} at @samp{airs}, it executes @samp{uux - airs!rmail
ian} and writes the mail message to the @command{uux} process as
standard input. The @command{uux} program, running on @samp{bantam},
will read the standard input and store it, as well as the
@command{rmail} request itself, on the work queue for @samp{airs}.
@command{uux} will then start the @command{uucico} daemon. The
@command{uucico} daemon will call up @samp{airs}, just as in the
@command{uucp} example, and transfer the work request and the mail
message. The @command{uucico} daemon on @samp{airs} will put the files
on a local work queue. When the communication session is over, the
@command{uucico} daemon on @samp{airs} will start the @command{uuxqt}
daemon. @command{uuxqt} will see the request on the work queue, and
will run @samp{rmail ian} with the mail message as standard input. The
@command{rmail} program, which is not part of the UUCP package, is then
responsible for either putting the message in the right mailbox on
@samp{airs} or forwarding the message on to another system.
Taylor UUCP comes with a few other programs that are useful when
installing and configuring UUCP.
@table @command
@item uuchk
The @command{uuchk} program reads the UUCP configuration files and
displays a rather lengthy description of what it finds. This is useful
when configuring UUCP to make certain that the UUCP package will do what
you expect it to do. For more details, see @ref{Invoking uuchk, uuchk}.
@item uuconv
The @command{uuconv} program can be used to convert UUCP configuration
files from one format to another. This can be useful for administrators
converting from an older UUCP package. Taylor UUCP is able to read and
use old configuration file formats, but some new features can not be
selected using the old formats. For more details, see @ref{Invoking
uuconv, uuconv}.
@item uusched
The @command{uusched} script is provided for compatibility with older
UUCP releases. It starts @command{uucico} to call, one at a time, all
the systems for which work has been queued. For more details, see
@ref{Invoking uusched, uusched}.
@item tstuu
The @command{tstuu} program is a test harness for the UUCP package; it
can help check that the package has been configured and compiled
correctly. However, it uses pseudo-terminals, which means that it is
less portable than the rest of the package. If it works, it can be
useful when initially installing Taylor UUCP. For more details, see
@ref{Testing the Compilation, tstuu}.
@end table
@node Invoking the UUCP Programs, Installing Taylor UUCP, Introduction, Top
@chapter Invoking the UUCP Programs
This chapter describes how to run the UUCP programs.
@menu
* Standard Options:: Standard Options for the UUCP Programs
* Invoking uucp:: Invoking uucp
* Invoking uux:: Invoking uux
* Invoking uustat:: Invoking uustat
* Invoking uuname:: Invoking uuname
* Invoking uulog:: Invoking uulog
* Invoking uuto:: Invoking uuto
* Invoking uupick:: Invoking uupick
* Invoking cu:: Invoking cu
* Invoking uucico:: Invoking uucico
* Invoking uuxqt:: Invoking uuxqt
* Invoking uuchk:: Invoking uuchk
* Invoking uuconv:: Invoking uuconv
* Invoking uusched:: Invoking uusched
@end menu
@node Standard Options, Invoking uucp, Invoking the UUCP Programs, Invoking the UUCP Programs
@section Standard Options
All of the UUCP programs support a few standard options.
@table @option
@item -x type
@itemx --debug type
Turn on particular debugging types. The following types are recognized:
@samp{abnormal}, @samp{chat}, @samp{handshake}, @samp{uucp-proto},
@samp{proto}, @samp{port}, @samp{config}, @samp{spooldir},
@samp{execute}, @samp{incoming}, @samp{outgoing}. Not all types of
debugging are effective for all programs. See the @code{debug}
configuration command for details (@pxref{Debugging Levels}).
Multiple types may be given, separated by commas, and the
@option{--debug} option may appear multiple times. A number may also be
given, which will turn on that many types from the foregoing list; for
example, @samp{--debug 2} is equivalent to @samp{--debug abnormal,chat}.
To turn on all types of debugging, use @samp{-x all}.
The @command{uulog} program uses @option{-X} rather than @option{-x} to
select the debugging type; for @command{uulog}, @option{-x} has a
different meaning, for reasons of historical compatibility.
@item -I file
@itemx --config file
Set the main configuration file to use. @xref{config File}. When this
option is used, the programs will revoke any setuid privileges.
@item -v
@itemx --version
Report version information and exit.
@item --help
Print a help message and exit.
@end table
@need 2000
@node Invoking uucp, Invoking uux, Standard Options, Invoking the UUCP Programs
@section Invoking uucp
@menu
* uucp Description:: Description of uucp
* uucp Options:: Options Supported by uucp
@end menu
@node uucp Description, uucp Options, Invoking uucp, Invoking uucp
@subsection uucp Description
@example
uucp [options] @file{source-file} @file{destination-file}
uucp [options] @file{source-file}... @file{destination-directory}
@end example
The @command{uucp} command copies files between systems. Each
@file{file} argument is either a file name on the local machine or is of
the form @samp{system!file}. The latter is interpreted as being on a
remote system.
When @command{uucp} is used with two non-option arguments, the contents
of the first file are copied to the second. With more than two
non-option arguments, each source file is copied into the destination
directory.
A file may be transferred to or from @samp{system2} via @samp{system1}
by using @samp{system1!system2!file}.
Any file name that does not begin with @samp{/} or @samp{~} will be
prepended with the current directory (unless the @option{-W} or
@option{--noexpand} options are used). For example, if you are in the
directory @samp{/home/ian}, then @samp{uucp foo remote!bar} is
equivalent to @samp{uucp /home/ian/foo remote!/home/ian/bar}. Note that
the resulting file name may not be valid on a remote system.
A file name beginning with a simple @samp{~} starts at the UUCP public
directory; a file name beginning with @samp{~name} starts at the home
directory of the named user. The @samp{~} is interpreted on the
appropriate system. Note that some shells will interpret an initial
@samp{~} before @command{uucp} sees it; to avoid this the @samp{~} must
be quoted.
The shell metacharacters @samp{?} @samp{*} @samp{[} and @samp{]} are
interpreted on the appropriate system, assuming they are quoted to
prevent the shell from interpreting them first.
The file copy does not take place immediately, but is queued up for the
@command{uucico} daemon; the daemon is started immediately unless the
@option{-r} or @option{--nouucico} option is given. The next time the
remote system is called, the file(s) will be copied. @xref{Invoking
uucico}.
The file mode is not preserved, except for the execute bit. The
resulting file is owned by the uucp user.
@node uucp Options, , uucp Description, Invoking uucp
@subsection uucp Options
The following options may be given to @command{uucp}.
@table @option
@item -c
@itemx --nocopy
Do not copy local source files to the spool directory. If they are
removed before being processed by the @command{uucico} daemon, the copy
will fail. The files must be readable by the @command{uucico} daemon,
and by the invoking user.
@item -C
@itemx --copy
Copy local source files to the spool directory. This is the default.
@item -d
@itemx --directories
Create all necessary directories when doing the copy. This is the
default.
@item -f
@itemx --nodirectories
If any necessary directories do not exist for the destination file name,
abort the copy.
@item -R
@itemx --recursive
If any of the source file names are directories, copy their contents
recursively to the destination (which must itself be a directory).
@item -g grade
@itemx --grade grade
Set the grade of the file transfer command. Jobs of a higher grade are
executed first. Grades run @kbd{0} to @kbd{9}, @kbd{A} to @kbd{Z},
@kbd{a} to @kbd{z}, from high to low. @xref{When to Call}.
@item -m
@itemx --mail
Report completion or failure of the file transfer by sending mail.
@item -n user
@itemx --notify user
Report completion or failure of the file transfer by sending mail to the
named user on the destination system.
@item -r
@itemx --nouucico
Do not start the @command{uucico} daemon immediately; merely queue up
the file transfer for later execution.
@item -j
@itemx --jobid
Print the jobid on standard output. The job may be later cancelled by
passing this jobid to the @option{-kill} switch of @command{uustat}.
@xref{Invoking uustat}.
It is possible for some complex operations to produce more than one
jobid, in which case each will be printed on a separate line. For
example
@example
uucp sys1!~user1/file1 sys2!~user2/file2 ~user3
@end example
will generate two separate jobs, one for the system @samp{sys1} and one
for the system @samp{sys2}.
@item -W
@itemx --noexpand
Do not prepend remote relative file names with the current directory.
@item -t
@itemx --uuto
This option is used by the @command{uuto} shell script; see
@ref{Invoking uuto}. It causes @command{uucp} to interpret the final
argument as @samp{system!user}. The file(s) are sent to
@samp{~/receive/@var{user}/@var{local}} on the remote system, where
@var{user} is from the final argument and @var{local} is the local UUCP
system name. Also, @command{uucp} will act as though @option{--notify
user} were specified.
@item -x type
@itemx --debug type
@itemx -I file
@itemx --config file
@itemx -v
@itemx --version
@itemx --help
@xref{Standard Options}.
@end table
@node Invoking uux, Invoking uustat, Invoking uucp, Invoking the UUCP Programs
@section Invoking uux
@menu
* uux Description:: Description of uux
* uux Options:: Options Supported by uux
* uux Examples:: Examples of uux Usage
@end menu
@node uux Description, uux Options, Invoking uux, Invoking uux
@subsection uux Description
@example
uux [options] command
@end example
The @command{uux} command is used to execute a command on a remote
system, or to execute a command on the local system using files from
remote systems. The command is not executed immediately; the request is
queued until the @command{uucico} daemon calls the system and transfers
the necessary files. The daemon is started automatically unless one of
the @option{-r} or @option{--nouucico} options is given.
The actual command execution is done by the @command{uuxqt} daemon on
the appropriate system.
File arguments can be gathered from remote systems to the execution
system, as can standard input. Standard output may be directed to a
file on a remote system.
The command name may be preceded by a system name followed by an
exclamation point if it is to be executed on a remote system. An empty
system name is taken as the local system.
Each argument that contains an exclamation point is treated as naming a
file. The system which the file is on is before the exclamation point,
and the file name on that system follows it. An empty system name is
taken as the local system; this form must be used to transfer a file to
a command being executed on a remote system. If the file name is not
absolute, the current working directory will be prepended to it; the
result may not be meaningful on the remote system. A file name may
begin with @samp{~/}, in which case it is relative to the UUCP public
directory on the appropriate system. A file name may begin with
@samp{~name/}, in which case it is relative to the home directory of the
named user on the appropriate system.
Standard input and output may be redirected as usual; the file names
used may contain exclamation points to indicate that they are on remote
systems. Note that the redirection characters must be quoted so that
they are passed to @command{uux} rather than interpreted by the shell.
Append redirection (@samp{>>}) does not work.
All specified files are gathered together into a single directory
before execution of the command begins. This means that each file
must have a distinct name. For example,
@example
uux 'sys1!diff sys2!~user1/foo sys3!~user2/foo >!foo.diff'
@end example
will fail because both files will be copied to @samp{sys1} and stored
under the name @file{foo}.
Arguments may be quoted by parentheses to avoid interpretation of
exclamation points. This is useful when executing the @command{uucp}
command on a remote system.
Most systems restrict the commands which may be executed using
@samp{uux}. Many permit only the execution of @samp{rmail} and
@samp{rnews}.
A request to execute an empty command (e.g., @samp{uux sys!}) will
create a poll file for the specified system; see @ref{Calling Other
Systems} for an example of why this might be useful.
The exit status of @command{uux} is one of the codes found in the header
file @file{sysexits.h}. In particular, @samp{EX_OK} (@samp{0})
indicates success, and @samp{EX_TEMPFAIL} (@samp{75}) indicates a
temporary failure.
@node uux Options, uux Examples, uux Description, Invoking uux
@subsection uux Options
The following options may be given to @command{uux}.
@table @option
@item -
@itemx -p
@itemx --stdin
Read standard input up to end of file, and use it as the standard input
for the command to be executed.
@item -c
@itemx --nocopy
Do not copy local files to the spool directory. This is the default.
If they are removed before being processed by the @command{uucico}
daemon, the copy will fail. The files must be readable by the
@command{uucico} daemon, as well as the by the invoker of @command{uux}.
@item -C
@itemx --copy
Copy local files to the spool directory.
@item -l
@itemx --link
Link local files into the spool directory. If a file can not be linked
because it is on a different device, it will be copied unless one of the
@option{-c} or @option{--nocopy} options also appears (in other words, use
of @option{--link} switches the default from @option{--nocopy} to
@option{--copy}). If the files are changed before being processed by the
@command{uucico} daemon, the changed versions will be used. The files
must be readable by the @command{uucico} daemon, as well as by the
invoker of @command{uux}.
@item -g grade
@itemx --grade grade
Set the grade of the file transfer command. Jobs of a higher grade are
executed first. Grades run @kbd{0} to @kbd{9}, @kbd{A} to @kbd{Z},
@kbd{a} to @kbd{z}, from high to low. @xref{When to Call}.
@item -n
@itemx --notification=no
Do not send mail about the status of the job, even if it fails.
@item -z
@itemx --notification=error
Send mail about the status of the job if an error occurs. For many
@command{uuxqt} daemons, including the Taylor UUCP @command{uuxqt}, this
is the default action; for those, @option{--notification=error} will have
no effect. However, some @command{uuxqt} daemons will send mail if the
job succeeds, unless the @option{--notification=error} option is used.
Some other @command{uuxqt} daemons will not send mail even if the job
fails, unless the @option{--notification=error} option is used.
@item -a address
@itemx --requestor address
Report job status, as controlled by the @option{--notification} option, to
the specified mail address.
@item -r
@itemx --nouucico
Do not start the @command{uucico} daemon immediately; merely queue up
the execution request for later processing.
@item -j
@itemx --jobid
Print the jobid on standard output. A jobid will be generated for each
file copy operation required to execute the command. These file copies
may be later cancelled by passing the jobid to the @option{-kill} switch
of @command{uustat}. @xref{Invoking uustat}. Cancelling any file copies
will make it impossible to complete execution of the job.
@item -x type
@itemx --debug type
@itemx -v
@itemx --version
@itemx --help
@xref{Standard Options}.
@end table
@node uux Examples, , uux Options, Invoking uux
@subsection uux Examples
Here are some examples of using @command{uux}.
@example
uux -z - sys1!rmail user1
@end example
This will execute the command @samp{rmail user1} on the system
@samp{sys1}, giving it as standard input whatever is given to @command{uux}
as standard input. If a failure occurs, mail will be sent to the user
who ran the command.
@example
uux 'diff -c sys1!~user1/file1 sys2!~user2/file2 >!file.diff'
@end example
This will fetch the two named files from system @samp{sys1} and system
@samp{sys2} and execute @samp{diff}, putting the result in
@file{file.diff} in the current directory on the local system. The
current directory must be writable by the @command{uuxqt} daemon for
this to work.
@example
uux 'sys1!uucp ~user1/file1 (sys2!~user2/file2)'
@end example
Execute @command{uucp} on the system @samp{sys1} copying @file{file1}
(on system @samp{sys1}) to @samp{sys2}. This illustrates the use of
parentheses for quoting.
@node Invoking uustat, Invoking uuname, Invoking uux, Invoking the UUCP Programs
@section Invoking uustat
@menu
* uustat Description:: Description of uustat
* uustat Options:: Options Supported by uustat
* uustat Examples:: Examples of uustat Usage
@end menu
@node uustat Description, uustat Options, Invoking uustat, Invoking uustat
@subsection uustat Description
@example
uustat -a
uustat --all
uustat [-eKRiMNQ] [-sS system] [-uU user] [-cC command] [-oy hours]
[-B lines] [--executions] [--kill-all] [--rejuvenate-all]
[--prompt] [--mail] [--notify] [--no-list] [--system system]
[--not-system system] [--user user] [--not-user user]
[--command command] [--not-command command] [--older-than hours]
[--younger-than hours] [--mail-lines lines]
uustat [-kr jobid] [--kill jobid] [--rejuvenate jobid]
uustat -q [-sS system] [-oy hours] [--system system]
[--not-system system ] [--older-than hours] [--younger-than hours]
uustat --list [-sS system] [-oy hours] [--system system ]
[--not-system system] [--older-than hours] [--younger-than hours]
uustat -m
uustat --status
uustat -p
uustat --ps
@end example
The @command{uustat} command can display various types of status
information about the UUCP system. It can also be used to cancel or
rejuvenate requests made by @command{uucp} or @command{uux}.
With no options, @command{uustat} displays all jobs queued up for the
invoking user, as if given the @option{--user} option with the appropriate
argument.
If any of the @option{-a}, @option{--all}, @option{-e},
@option{--executions}, @option{-s}, @option{--system}, @option{-S},
@option{--not-system}, @option{-u}, @option{--user}, @option{-U},
@option{--not-user}, @option{-c}, @option{--command}, @option{-C},
@option{--not-command}, @option{-o}, @option{--older-than}, @option{-y},
or @option{--younger-than} options are given, then all jobs which match
the combined specifications are displayed.
The @option{-K} or @option{--kill-all} option may be used to kill off a
selected group of jobs, such as all jobs more than 7 days old.
@node uustat Options, uustat Examples, uustat Description, Invoking uustat
@subsection uustat Options
The following options may be given to @command{uustat}.
@table @option
@item -a
@itemx --all
List all queued file transfer requests.
@item -e
@itemx --executions
List queued execution requests rather than queued file transfer
requests. Queued execution requests are processed by @command{uuxqt}
rather than @command{uucico}. Queued execution requests may be waiting for
some file to be transferred from a remote system. They are created by
an invocation of @command{uux}.
@item -s system
@itemx --system system
List all jobs queued up for the named system. These options may be
specified multiple times, in which case all jobs for all the named
systems will be listed. If used with @option{--list}, only the systems
named will be listed.
@item -S system
@itemx --not-system system
List all jobs queued for systems other than the one named. These
options may be specified multiple times, in which case no jobs from any
of the specified systems will be listed. If used with @option{--list},
only the systems not named will be listed. These options may not be
used with @option{-s} or @option{--system}.
@item -u user