lrz.1
上传用户:tianjinjs
上传日期:2007-01-05
资源大小:309k
文件大小:12k
源码类别:

Modem编程

开发平台:

Unix_Linux

  1. '"
  2. '" Revision Level 
  3. '" Last Delta     04-22-88
  4. .TH RZ 1 OMEN
  5. .SH NAME
  6. rx, rb, rz - XMODEM, YMODEM, ZMODEM (Batch) file receive
  7. .SH SYNOPSIS
  8. .B rz
  9. .RB [- " +8abeOpqRtTuUvy" ]
  10. .br
  11. .B rb
  12. .RB [- " +abqRtuUvy" ]
  13. .br
  14. .B rx
  15. .RB [- " abceqRtuUv" ]
  16. .I file
  17. .br
  18. .RB [ - ][ v ] rzCOMMAND
  19. .SH DESCRIPTION
  20. This program uses error correcting protocols to receive
  21. files over a dial-in serial port from a variety of programs running under
  22. PC-DOS, CP/M,
  23. .SM Unix,
  24. and other operating systems.
  25. It is invoked from a shell prompt
  26. manually, or automatically as a result of an
  27. "sz file ..." command given to the calling program.
  28. While
  29. .I rz
  30. is smart enough to be called from
  31. .I cu(1),
  32. very few versions of
  33. .I cu(1)
  34. are smart enough to allow
  35. .I rz
  36. to work properly.
  37. Unix flavors of Professional-YAM are available for such dial-out application.
  38. .B Rz
  39. (Receive ZMODEM)
  40. receives files with the ZMODEM batch protocol.
  41. Pathnames are supplied by the sending program,
  42. and directories are made if necessary (and possible).
  43. Normally, the
  44. "rz" command is automatically issued by the calling ZMODEM program,
  45. but some defective ZMODEM implementations may require starting
  46. .I rz
  47. the old fashioned way.
  48. .B Rb
  49. receives file(s) with YMODEM,
  50. accepting either standard 128 byte sectors or
  51. 1024 byte sectors
  52. (YAM sb
  53. .B -k
  54. option).
  55. The user should determine when
  56. the 1024 byte block length
  57. actually improves throughput without causing lost data
  58. or even system crashes.
  59. If True YMODEM (Omen Technology trademark) file information (file length, etc.)
  60. is received,
  61. the file length controls the number of bytes written to
  62. the output dataset,
  63. and the modify time and file mode
  64. (iff non zero)
  65. are set accordingly.
  66. If no True YMODEM file information is received,
  67. slashes in the pathname are changed to underscore,
  68. and any trailing period in the pathname is eliminated.
  69. This conversion is useful for files received from CP/M systems.
  70. With YMODEM, each file name is converted to lower case
  71. unless it contains one or more lower case letters.
  72. .B Rx
  73. receives a single
  74. .I file
  75. with XMODEM or XMODEM-1k protocol.
  76. The user should determine when
  77. the 1024 byte block length
  78. actually improves throughput without causing problems.
  79. The user must supply the file name to both sending and receiving programs.
  80. Up to 1023 garbage characters may be added to the received file.
  81. .B Rz
  82. may be invoked as
  83. .B rzCOMMAND
  84. (with an optional leading - as generated by login(1)).
  85. For each received file,
  86. .I rz
  87. will pipe the file to ``COMMAND filename''
  88. where filename is the name of the transmitted file
  89. with the file contents as standard input.
  90. Each file transfer is acknowledged when COMMAND exits with 0 status.
  91. A non zero exit status terminates transfers.
  92. A typical use for this form is
  93. .I rzrmail
  94. which calls rmail(1)
  95. to post mail to the user specified by the transmitted file name.
  96. For example, sending the file "caf" from a PC-DOS system to
  97. .I rzrmail
  98. on a
  99. .SM Unix
  100. system
  101. would result in the contents of the DOS file "caf" being mailed to user "caf".
  102. On some
  103. .SM Unix
  104. systems, the login directory must contain a link to
  105. COMMAND as login sets SHELL=rsh which disallows absolute
  106. pathnames.
  107. If invoked with a leading ``v'',
  108. .I rz
  109. will be verbose (see 
  110. .B v
  111. option).
  112. The following entry works for
  113. .SM Unix
  114. SYS III/V:
  115. .ce
  116. rzrmail::5:1::/bin:/usr/local/rzrmail
  117. If the SHELL environment variable includes
  118. .I "rsh"
  119. ,
  120. .I "rbash"
  121. or
  122. .I "rksh"
  123. (restricted shell),
  124. .I rz
  125. will not accept absolute pathnames
  126. or references to a parent directory,
  127. will not modify an existing file, and
  128. removes any files received in error.
  129. If
  130. .B rz
  131. is invoked with stdout and stderr to different datasets,
  132. Verbose is set to 2, causing frame by frame progress reports
  133. to stderr.
  134. This may be disabled with the
  135. .B q
  136. option.
  137. .SH OPTIONS
  138. The meanings of the available options are:
  139. .PP
  140. .PD 0
  141. .TP
  142. .B "-+, --append"
  143. append received data to an existing file (ZMODEM, ASCII only).
  144. .TP
  145. .B "-a, --ascii"
  146. Convert files to
  147. .SM Unix
  148. conventions by stripping carriage returns and all characters
  149. beginning with the first Control Z (CP/M end of file).
  150. .TP
  151. .B "-b, --binary"
  152. Binary
  153. (tell it like it is)
  154. file transfer override.
  155. .TP
  156. .B "-B NUMBER, --bufsize NUMBER"
  157. Buffer 
  158. .B NUMBER
  159. bytes before writing to disk. Default ist 32768, which should be enough
  160. for most situations. If you have a slow machine or a bad disk interface
  161. or suffer from other hardware problems you might want to increase
  162. the buffersize.
  163. .B -1
  164. or
  165. .B auto
  166. use a buffer large enough to buffer the whole file. Be careful with this
  167. options - things normally get worse, not better, if the machine starts
  168. to swap.
  169. .TP
  170. .B "-c, --with-crc"
  171. XMODEM only. Use 16 bit CRC (normally a one byte checksum is used).
  172. .TP
  173. .B "-C, --allow-remote-commands"
  174. allow remote command execution (
  175. .B insecure
  176. ). This allows the sender to execute an arbitrary command through
  177. .B system
  178. () or
  179. .B execl
  180. (). Default is to disable this feature (?). This option is ignored
  181. if running in restricted mode.
  182. .TP
  183. .B "-D, --null"
  184. Output file data to /dev/null; for testing.
  185. (Unix only)
  186. .TP
  187. .B "--delay-startup N"
  188. Wait 
  189. .B N
  190. seconds before doing anything.
  191. .TP
  192. .B "-e, --escape"
  193. Force sender to escape all control characters;
  194. normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.
  195. .TP
  196. .B "-E, --rename"
  197. Rename incoming file if target filename already exists. The new file
  198. name will have a dot and a number (0..999) appended.
  199. .TP
  200. .B "-h, --help"
  201. give help screen.
  202. .TP
  203. .B "-m N, --min-bps N"
  204. Stop transmission if BPS-Rate (Bytes Per Second) falls below N for a
  205. certain time (see --min-bps-time option).
  206. .TP
  207. .B "-M N, --min-bps-time"
  208. Used together with --min-bps. Default is 120 (seconds).
  209. .TP
  210. .B "-O, --disable-timeouts"
  211. Disable read timeout handling code. This makes lrz hang if the
  212. sender does not send any more, but increases performance (a bit)
  213. and decreases system load (through reducing the number of system
  214. calls by about 50 percent).
  215. Use this option with care.
  216. .TP
  217. .B "--o-sync"
  218. Open output files in synchronous write mode. This may be useful if you
  219. experience errors due to lost interrupts if update (or bdflush or
  220. whoever this daemon is called on your system) writes the buffers to the
  221. disk.
  222. This option is silently ignored if your systems doesn't support O_SYNC.
  223. .TP
  224. .B "-p, --protect"
  225. (ZMODEM) Protect: skip file if destination file exists.
  226. .TP
  227. .B "-q, --quiet"
  228. Quiet suppresses verbosity.
  229. .TP
  230. .B "-r, --resume"
  231. Crash recovery mode. lrz tries to resume interrupted file transfers.
  232. .TP
  233. .B "-R, --restricted"
  234. Enter more restricted mode. lrz will not create directories or files
  235. with a leading dot if this option is given twice.
  236. See 
  237. .B SECURITY
  238. for mode information about restricted mode.
  239. .TP
  240. .B "-s HH:MM, --stop-at HH:MM"
  241. Stop transmission at
  242. .B HH
  243. hours,
  244. .B MM
  245. minutes. Another variant, using
  246. .B +N
  247. instead of
  248. .B HH:MM,
  249. stops transmission in
  250. .B N
  251. seconds.
  252. .TP
  253. .B "-S, --timesync"
  254. Request timesync packet from the sender. The sender sends its system time, 
  255. causing lrz to complain about more then 60 seconds difference. 
  256. Lrz tries to set the local system time to the remote time if this option 
  257. is given twice (this fails if lrz is not run by root).
  258. This option makes lrz incompatible with certain other ZModems. Don't
  259. use it unless you know what you are doing.
  260. .TP
  261. .B "--syslog[=off]"
  262. turn syslogging on or off. the default is set at configure time.
  263. This option is ignored if no syslog support is compiled in.
  264. .TP
  265. .B "-t TIM, --timeout TIM"
  266. Change timeout to
  267. .I TIM
  268. tenths of seconds. This is ignored if timeout handling is turned of
  269. through the 
  270. .B O 
  271. option.
  272. .TP
  273. .B "-U, --unrestrict"
  274. turn off restricted mode (this is not possible if running under
  275. a restricted shell).
  276. .TP
  277. .B "--version"
  278. prints out version number.
  279. .TP
  280. .B "-v, --verbose"
  281. Verbose
  282. causes a list of file
  283. names to be appended to stderr.
  284. More v's generate more output.
  285. .TP
  286. .B "-wN, --windowsize N"
  287. Set window size to N.
  288. .TP
  289. .B "-X, --xmodem"
  290. use XMODEM protocol.
  291. .TP
  292. .B "-y, --overwrite"
  293. Yes, clobber any existing files with the same name.
  294. .TP
  295. .B "--ymodem"
  296. use YMODEM protocol.
  297. .TP
  298. .B "-Z, --zmodem"
  299. use ZMODEM protocol.
  300. .PD
  301. .ne 6
  302. .SH SECURITY
  303. Contrary to the original ZMODEM lrz defaults to restricted mode. In
  304. restricted mode lrz will not accept absolute pathnames or references 
  305. to a parent directory, will not modify an existing file, and
  306. removes any files received in error. Remote command execution is 
  307. disabled.
  308. To use a more restricted mode set the environment variable 
  309. .B ZMODEM_RESTRICTED 
  310. or give the
  311. .B R
  312. option. This disables creation of subdirectories and invisible
  313. files.
  314. Restricted mode may be turned off with the
  315. .B U 
  316. option, unless lrz runs under a restricted shell.
  317. .SH ENVIRONMENT
  318. lrz uses the following environment variables:
  319. .TP
  320. .B SHELL
  321. lrz recognizes a restricted shell if this variable includes
  322. .I "rsh"
  323. or
  324. .I "rksh"
  325. .
  326. .TP
  327. .B ZMODEM_RESTRICTED
  328. lrz enters the more restricted mode if the variable is set.
  329. .SH EXAMPLES
  330. .RE
  331. (Pro-YAM command)
  332. .RS
  333. .I <ALT-2>
  334. .br
  335. Pro-YAM Command:
  336. .I "sz *.h *.c"
  337. .br
  338. (This automatically invokes
  339. .I rz
  340. on the connected system.)
  341. .RE
  342. .SH SEE ALSO
  343. ZMODEM.DOC,
  344. YMODEM.DOC,
  345. Professional-YAM,
  346. crc(omen),
  347. sz(omen),
  348. usq(omen),
  349. undos(omen)
  350. Compile time options required
  351. for various operating systems are described in the
  352. source file.
  353. .SH NOTES
  354. Sending serial data to timesharing minicomputers
  355. at sustained high speeds
  356. has been known to cause lockups, system halts, kernel panics,
  357. and occasional antisocial behaviour.
  358. When experimenting with high speed input to a
  359. system, consider rebooting the system
  360. if the file transfers are not successful,
  361. especially if the personality of the system appears altered.
  362. The Unix "ulimit" parameter must be set high enough
  363. to permit large file transfers.
  364. The TTY input buffering on some systems may not allow long blocks
  365. or streaming input at high speed.
  366. You should suspect this problem when you
  367. can't send data to the Unix system at high speeds using ZMODEM,
  368. YMODEM-1k or XMODEM-1k,
  369. when YMODEM with 128 byte blocks works properly.
  370. If the system's tty line handling is really broken, the serial port
  371. or the entire system may not survive the onslaught of long bursts
  372. of high speed data.
  373. The DSZ or Pro-YAM
  374. .B "zmodem l"
  375. numeric parameter may be set to a value between 64 and 1024 to limit the
  376. burst length ("zmodem pl128").
  377. 32 bit CRC code courtesy Gary S. Brown.
  378. Directory creation code from John Gilmore's PD TAR program.
  379. .SH BUGS
  380. Calling
  381. .I rz
  382. from most versions of cu(1) doesn't work because cu's receive process
  383. fights
  384. .I rz
  385. for characters from the modem.
  386. Programs that do not properly implement the specified file transfer protocol
  387. may cause
  388. .I sz
  389. to "hang" the port for a minute or two.
  390. Every reported instance of this problem has been corrected by using
  391. ZCOMM, Pro-YAM, or other program with a correct implementation
  392. of the specified protocol.
  393. Many programs claiming to support YMODEM only support XMODEM with 1k blocks,
  394. and they often don't get that quite right.
  395. Pathnames are restricted to 127 characters.
  396. In XMODEM single file mode, the pathname given on the command line
  397. is still processed as described above.
  398. The ASCII option's CR/LF to NL translation merely deletes CR's;
  399. undos(omen) performs a more intelligent translation.
  400. .SH "VMS VERSION"
  401. The VMS version does not set the file time.
  402. VMS C Standard I/O and RMS may interact to modify
  403. file contents unexpectedly.
  404. The VMS version does not support invocation as
  405. .B rzCOMMAND .
  406. The current VMS version does not support XMODEM, XMODEM-1k, or YMODEM.
  407. According to the VMS documentation,
  408. the buffered input routine used on the VMS version of
  409. .I rz
  410. introduces a delay
  411. of up to one second for each protocol transaction.
  412. This delay may be significant for very short files.
  413. Removing the "#define BUFREAD" line from rz.c will
  414. eliminate this delay at the expense of increased
  415. CPU utilization.
  416. The VMS version causes DCL to generate a random off the wall
  417. error message under some error conditions; this is a result of
  418. the incompatibility of the VMS "exit" function with the
  419. Unix/MSDOS standard.
  420. .SH "ZMODEM CAPABILITIES"
  421. .I Rz
  422. supports incoming ZMODEM binary (-b), ASCII (-a),
  423. protect (-p),
  424. clobber (-y),
  425. and append (-+)
  426. requests.
  427. The default is protect (-p) and binary (-b).
  428. The Unix versions support ZMODEM command execution.
  429. .SH FILES
  430. rz.c, crctab.c, rbsb.c, zm.c, zmodem.h Unix source files.
  431. rz.c, crctab.c, vrzsz.c, zm.c, zmodem.h, vmodem.h, vvmodem.c,
  432. VMS source files.