Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SZ(1)			    General Commands Manual			 SZ(1)

NAME
       sx, sb, sz - XMODEM, YMODEM, ZMODEM file	send

SYNOPSIS
       sz [-+8abdefkLlNnopqTtuvyY] file	...
       sb [-adfkqtuv] file ...
       sx [-akqtuv] file
       sz [-oqtv] -c COMMAND
       sz [-oqtv] -i COMMAND
       sz -TT

DESCRIPTION
       Sz  uses	the ZMODEM, YMODEM or XMODEM error correcting protocol to send
       one or more files over a	dial-in	serial port to a variety  of  programs
       running under PC-DOS, CP/M, Unix, VMS, and other	operating systems.

       While  rz is smart enough to be called from cu(1), very few versions of
       cu(1) are smart enough to allow sz to work properly.  Unix  flavors  of
       Professional-YAM	are available for such dial-out	application.

       Sz sends	one or more files with ZMODEM protocol.

       ZMODEM  greatly simplifies file transfers compared to XMODEM.  In addi-
       tion to a friendly user interface, ZMODEM  provides  Personal  Computer
       and  other  users  an  efficient,  accurate,  and  robust file transfer
       method.

       ZMODEM provides complete	END-TO-END data	integrity between  application
       programs.   ZMODEM's 32 bit CRC catches errors that sneak into even the
       most advanced networks.

       Advanced	file management	features include AutoDownload (Automatic  file
       Download	 initiated  without  user intervention), Display of individual
       and total file lengths and transmission time estimates, Crash Recovery,
       selective file transfers, and  preservation  of	exact  file  date  and
       length.

       Output  from another program may	be piped to sz for transmission	by de-
       noting standard input with "-":
				    ls -l | sz -
       The program output is transmitted with the filename sPID.sz  where  PID
       is the process ID of the	sz program.  If	the environment	variable ONAME
       is set, that is used instead.  In this case, the	Unix command:
			     ls	-l | ONAME=con sz -ay -
       will  send  a  "file" to	the PC-DOS console display.  The -y option in-
       structs the receiver to open the	file for writing unconditionally.  The
       -a option causes	the receiver to	convert	Unix newlines to  PC-DOS  car-
       riage returns and linefeeds.

       Sb  batch  sends	one or more files with YMODEM or ZMODEM	protocol.  The
       initial ZMODEM initialization is	not sent.  When	requested by  the  re-
       ceiver, sb supports YMODEM-g with "cbreak" tty mode, XON/XOFF flow con-
       trol, and interrupt character set to CAN	(^X).  YMODEM-g	(Professional-
       YAM  g  option)	increases  throughput over error free channels (direct
       connection, X.PC, etc.)	by not acknowledging each transmitted sector.

       On Unix systems,	additional information about the file is  transmitted.
       If  the	receiving  program uses	this information, the transmitted file
       length controls the  exact  number  of  bytes  written  to  the	output
       dataset,	and the	modify time and	file mode are set accordingly.

       Sx sends	a single file with XMODEM or XMODEM-1k protocol	(sometimes in-
       correctly called	"ymodem").  The	user must supply the file name to both
       sending and receiving programs.

       If  sz  is  invoked  with $SHELL	set and	iff that variable contains the
       string rsh , rbash or rksh  (restricted	shell),	 sz  operates  in  re-
       stricted	 mode.	Restricted mode	restricts pathnames to the current di-
       rectory and PUBDIR (usually /usr/spool/uucppublic)  and/or  subdirecto-
       ries thereof.

       The  fourth form	sends a	single COMMAND to a ZMODEM receiver for	execu-
       tion.  Sz exits with the	COMMAND	return	value.	 If  COMMAND  includes
       spaces or characters special to the shell, it must be quoted.

       The  fifth  form	sends a	single COMMAND to a ZMODEM receiver for	execu-
       tion.  Sz exits as soon as the receiver has correctly received the com-
       mand, before it is executed.

       The sixth form (sz -TT) attempts	to output all 256 code combinations to
       the terminal.  In you are having	difficulty sending files, this command
       lets you	see which character codes are being  eaten  by	the  operating
       system.

       If  sz is invoked with stdout and stderr	to different datasets, Verbose
       is set to 2, causing frame by frame progress reports to	stderr.	  This
       may be disabled with the	q option.

       The meanings of the available options are:

       -+, --append
	      Instruct	the receiver to	append transmitted data	to an existing
	      file (ZMODEM only).
       -2, --twostop
	      use two stop bits	(if possible). Do not use this unless you know
	      what you are doing.
       -8, --try-8k
	      Try to go	up to 8KB blocksize. This is incompatible  with	 stan-
	      dard  zmodem,  but  a common extension in	the bbs	world. (ZMODEM
	      only).
       --start-8k
	      Start with 8KB blocksize.	Like --try-8k.
       -a, --ascii
	      Convert NL characters in the transmitted file to CR/LF.  This is
	      done by the sender for XMODEM and	YMODEM,	by  the	 receiver  for
	      ZMODEM.
       -b, --binary
	      (ZMODEM) Binary override:	transfer file without any translation.
       -B NUMBER, --bufsize NUMBER
	      Use  a  readbuffer  of  NUMBER  bytes.  Default ist 16384, which
	      should be	enough for most	situations. If you have	a slow machine
	      or a bad disk interface or suffer	from other  hardware  problems
	      you  might  want	to  increase the buffersize.  -1 or auto use a
	      buffer large enough to buffer the	whole file.  Be	 careful  with
	      this  option - things normally get worse,	not better, if the ma-
	      chine starts to swap.

	      Using this option	turns of memory	mapping	 of  the  input	 file.
	      This increases memory and	cpu usage.
       -c COMMAND, --command COMMAND
	      Send  COMMAND  to	 the  receiver for execution, return with COM-
	      MAND's exit status.
       -C N, --command-tries N
	      Retry to send command N times (default: 11).
       -d, --dot-to-slash
	      Change all instances of "." to "/" in the	transmitted  pathname.
	      Thus,  C.omenB0000  (which  is unacceptable to MSDOS or CP/M) is
	      transmitted as C/omenB0000.  If the resultant filename has  more
	      than  8 characters in the	stem, a	"." is inserted	to allow a to-
	      tal of eleven.

	      This option enables the --full-path option.
       --delay-startup N
	      Wait N seconds before doing anything.
       -e, --escape
	      Escape all control characters; normally XON, XOFF, DLE, CR-@-CR,
	      and Ctrl-X are escaped.
       Force the sender	to rename the new file if a file with the same
	      name already exists.
       -f, --full-path
	      Send Full	pathname.  Normally directory  prefixes	 are  stripped
	      from the transmitted filename.

	      This is also turned on with to --dot-to-slash option.
       -h, --help
	      give help.
       -i COMMAND, --immediate-command COMMAND
	      Send  COMMAND  to	the receiver for execution, return immediately
	      upon the receiving program's successful recption of the command.
       -k, --1k
	      (XMODEM/YMODEM) Send files using 1024 byte  blocks  rather  than
	      the  default  128	 byte  blocks.	 1024  byte packets speed file
	      transfers	at high	bit rates.  (ZMODEM streams the	data  for  the
	      best possible throughput.)
       -L N, --packetlen N
	      Use  ZMODEM  sub-packets	of  length  N.	A larger N (32 <= N <=
	      1024) gives slightly higher throughput, a	smaller	N speeds error
	      recovery.	 The default is	128 below  300	baud,  256  above  300
	      baud, or 1024 above 2400 baud.
       -m N, --min-bps N
	      Stop  transmission  if BPS-Rate (Bytes Per Second) falls below N
	      for a certain time (see --min-bps-time option).
       -M N, --min-bps-time
	      Used together with --min-bps. Default is 120 (seconds).
       -l N, --framelen	N
	      Wait for the receiver to acknowledge correct data	every N	(32 <=
	      N	<= 1024) characters.  This may be used to avoid	network	 over-
	      run when XOFF flow control is lacking.
       -n, --newer
	      (ZMODEM)	Send  each  file  if  destination file does not	exist.
	      Overwrite	destination file if source file	is newer than the des-
	      tination file.
       -N, --newer-or-longer
	      (ZMODEM) Send each file if  destination  file  does  not	exist.
	      Overwrite	 destination  file  if	source file is newer or	longer
	      than the destination file.
       -o, --16-bit-crc
	      (ZMODEM) Disable automatic selection of 32 bit CRC.
       -O, --disable-timeouts
	      Disable read timeout handling. This makes	lsz hang if the	 other
	      side doesn't send	anything, but increases	performance (not much)
	      and  decreases  system  load  (reduces number of system calls by
	      about 50 percent).

	      Use this option with care.
       -p, --protect
	      (ZMODEM) Protect existing	destination files by skipping transfer
	      if the destination file exists.
       -q, --quiet
	      Quiet suppresses verbosity.
       -R, --restricted
	      Restricted mode: restricts pathnames to  the  current  directory
	      and PUBDIR (usually /usr/spool/uucppublic) and/or	subdirectories
	      thereof.
       -r, --resume
	      (ZMODEM)	Resume	interrupted file transfer.  If the source file
	      is longer	than the destination file, the transfer	 commences  at
	      the offset in the	source file that equals	the length of the des-
	      tination file.
       -s HH:MM, --stop-at HH:MM
	      Stop  transmission at HH hours, MM minutes. Another variant, us-
	      ing +N instead of	HH:MM, stops transmission in N seconds.
       -S, --timesync
	      enable timesync protocol support.	See timesync.doc  for  further
	      information.

	      This  option  is	incompatible with standard zmodem. Use it with
	      care.
       --syslog[=off]
	      turn syslogging on or off. the default is	set at configure time.
	      This option is ignored if	no syslog support is compiled in.
       -t TIM, --timeout TIM
	      Change timeout to	TIM tenths of seconds.
       -T, --turbo
	      Do not escape certain characters (^P,  ^P|0x80,  telenet	escape
	      sequence [CR + @]). This improves	performance by about 1 percent
	      and shouldn't hurt in the	normal case (but be careful - ^P might
	      be useful	if connected through a terminal	server).
       --tcp  Try  to initiate a TCP/IP	connection. lsz	will ask the receiving
	      zmodem to	open a TCP/IP connection. All handshaking  (which  ad-
	      dress / port to use) will	be done	by the zmodem programs.

	      You  will	 normally  not want to use this	option as lrzsz	is the
	      only zmodem which	understands what to  do	 (private  extension).
	      You  might  want to use this option if the two programs are con-
	      nected (stdin/out) over a	slow or	bad (not 8bit  clean)  network
	      connection.

	      Use  of this option imposes a security risk, somebody else could
	      connect to the port in between. See SECURITY for details.
       --tcp-client ADDRESS:PORT
	      Act as a tcp/ip client: Connect to the given port.

	      See --tcp-server for more	information.

       --tcp-server
	      Act as a server: Open a socket, print out	what to	do,  wait  for
	      connection.

	      You  will	 normally  not want to use this	option as lrzsz	is the
	      only zmodem which	understands what to  do	 (private  extension).
	      You  might want to use this if you have to use zmodem (for which
	      reason whatever),	and cannot use the --tcp option	of  lsz	 (per-
	      haps  because your telnet	doesn't	allow to spawn a local program
	      with stdin/stdout	connected to the remote	side).

	      If you use this option you have to start	lsz  with  the	--tcp-
	      client ADDRESS:PORT option.  lrz will print the address and port
	      on startup.

	      Use  of this option imposes a security risk, somebody else could
	      connect to the port in between. See SECURITY for details.

       -u     Unlink the file after successful transmission.
       -U, --unrestrict
	      Turn off restricted mode (this is	not possible if	running	 under
	      a	restricted shell).
       -w N, --windowsize N
	      Limit the	transmit window	size to	N bytes	(ZMODEM).
       -v, --verbose
	      Verbose output to	stderr.	More v's generate more output.
       -X, --xmodem
	      use XMODEM protocol.
       -y, --overwrite
	      Instruct	a  ZMODEM  receiving program to	overwrite any existing
	      file with	the same name.
       -Y, --overwrite-or-skip
	      Instruct a ZMODEM	receiving program to  overwrite	 any  existing
	      file  with  the  same name, and to skip any source files that do
	      have a file with the same	pathname on the	destination system.
       --ymodem
	      use ZMODEM protocol.
       -Z, --zmodem
	      use ZMODEM protocol.

SECURITY
       Restricted mode restricts pathnames to the current directory and	PUBDIR
       (usually	/var/spool/uucppublic) and/or subdirectories thereof, and dis-
       ables remote command execution.

       Restricted mode is entered if the R option is given or if  lsz  detects
       that  it	 runs  under a restricted shell	or if the environment variable
       ZMODEM_RESTRICTED is found.

       Restricted mode can be turned of	with the U option if not running under
       a restricted shell.

       Use of the
	      --tcp-client or --tcp-server options imposes a security risk, as
	      somebody else could connect to the port before you  do  it,  and
	      grab  your data. If there's strong demand	for a more secure mode
	      i	might introduce	some sort of password challenge.

ENVIRONMENT
       ZNULLS may be used to specify the number	of  nulls  to  send  before  a
	      ZDATA frame.

       SHELL  lsz  recognizes a	restricted shell if this variable includes rsh
	      or rksh

       ZMODEM_RESTRICTED
	      lrz enters restricted mode if the	variable is set.

       TMPDIR If this environment variable is set its content is used  as  the
	      directory	 to  place  in	the answer file	to a timesync request.
	      TMP Used instead of TMPDIR if TMPDIR is not set. If neither  TM-
	      PDIR nor TMP is set /tmp will be used.

EXAMPLES
       ZMODEM File Transfer (Unix to DSZ/ZCOMM/Professional-YAM)
       % sz -a *.c
       This  single  command transfers all .c files in the current Unix	direc-
       tory with conversion (-a) to end	of line	conventions appropriate	to the
       receiving environment.  With ZMODEM AutoDownload	enabled, Professional-
       YAM  and	ZCOMM will automatically recieve the files after performing  a
       security	check.

       % sz -Yan *.c *.h
       Send only the .c	and .h files that exist	on both	systems, and are newer
       on  the	sending	system than the	corresponding version on the receiving
       system, converting Unix to DOS text format.
       $ sz -\Yan file1.c file2.c file3.c foo.h	baz.h (R)(for VMS)

       ZMODEM Command Download (Unix to	Professional-YAM)
	cpszall:all
	   sz -c "c:;cd	/yam/dist"
	   sz -ya $(YD)/*.me
	   sz -yqb y*.exe
	   sz -c "cd /yam"
	   sz -i "!insms"
       This Makefile fragment uses sz to issue commands	to Professional-YAM to
       change current disk and directory.  Next, sz transfers  the  .me	 files
       from  the  $YD  directory, commanding the receiver to overwrite the old
       files and to convert from Unix end of line conventions to  PC-DOS  con-
       ventions.   The	third  line transfers some .exe	files.	The fourth and
       fifth lines command Pro-YAM to change directory and  execute  a	PC-DOS
       batch  file  insms .  Since the batch file takes	considerable time, the
       -i form is used to allow	sz to exit immediately.

       XMODEM File Transfer (Unix to Crosstalk)
       % sx -a foo.c
       ESC
       rx foo.c
       The above three commands	transfer a single file from Unix to a  PC  and
       Crosstalk  with sz translating Unix newlines to DOS CR/LF.  This	combi-
       nation is much slower and far less reliable than	ZMODEM.

ERROR MESSAGES
       "Caught signal 99" indicates the	program	was not	properly compiled, re-
       fer to "bibi(99)" in rbsb.c for details.

SEE ALSO
       rz(omen),   ZMODEM.DOC,	 YMODEM.DOC,   Professional-YAM,    crc(omen),
       sq(omen), todos(omen), tocpm(omen), tomac(omen),	yam(omen)

       Compile	time  options  required	 for various operating systems are de-
       scribed in the source file.

VMS VERSION
       The VMS version does not	support	wild cards.  Because of	VMS DCL, upper
       case option letters muse	be represented by \ proceding the letter.

       The current VMS version does not	support	XMODEM,	XMODEM-1k, or YMODEM.

       VMS C Standard I/O and RMS may interact to modify the file contents.

FILES
       32 bit CRC code courtesy	Gary S.	Brown.

       sz.c, crctab.c, rbsb.c, zm.c, zmodem.h Unix source files

       sz.c, crctab.c,	vrzsz.c,  zm.c,	 zmodem.h,  vmodem.h,  vvmodem.c,  VMS
       source files.

       /tmp/szlog stores debugging output (sz -vv) (szlog on VMS).

TESTING	FEATURE
       The  command "sz	-T file" exercises the Attn sequence error recovery by
       commanding errors with unterminated  packets.   The  receiving  program
       should  complain	 five  times about binary data packets being too long.
       Each time sz is interrupted, it should send a ZDATA header followed  by
       another	defective  packet.   If	the receiver does not detect five long
       data packets, the Attn sequence is not interrupting the sender, and the
       Myattn string in	sz.c must be modified.

       After 5 packets,	sz stops the "transfer"	and prints the total number of
       characters "sent" (Tcount).  The	difference  between  Tcount  and  5120
       represents  the number of characters stored in various buffers when the
       Attn sequence is	generated.

BUGS
       Calling sz from most versions of	cu(1) doesn't work  because  cu's  re-
       ceive process fights sz for characters from the modem.

       On  at least one	BSD system, sz would hang or exit when it got within a
       few kilobytes of	the end	of file.  Using	the "-w	8192" flag  fixed  the
       problem.	  The  real  cause is unknown, perhaps a bug in	the kernel TTY
       output routines.

       Programs	that do	not properly implement	the  specified	file  transfer
       protocol	 may  cause  sz	 to "hang" the port for	a minute or two.  This
       problem is corrected by using ZCOMM, Pro-YAM, or	other program  with  a
       correct implementation of the specified protocol.

       Many  programs  claiming	 to support YMODEM only	support	XMODEM with 1k
       blocks, and they	often don't get	that quite right.

       XMODEM transfers	add up to 127 garbage bytes per	file.	XMODEM-1k  and
       YMODEM-1k transfers use 128 byte	blocks to avoid	extra padding.

       YMODEM programs use the file length transmitted at the beginning	of the
       transfer	 to prune the file to the correct length; this may cause prob-
       lems with source	files that grow	during the  course  of	the  transfer.
       This  problem  does not pertain to ZMODEM transfers, which preserve the
       exact file length unconditionally.

       Most ZMODEM options are merely passed to	the receiving program; some do
       not implement all these options.

       Circular	buffering and a	ZMODEM sliding window should be	used when  in-
       put  is from pipes instead of acknowledging frames each 1024 bytes.  If
       no files	can be opened, sz sends	a ZMODEM command to  echo  a  suitable
       complaint; perhaps it should check for the presence of at least one ac-
       cessible	 file before getting hot and bothered.	The test mode leaves a
       zero length file	on the receiving system.

       A few high speed	modems have a firmware bug that	drops characters  when
       the  direction of high speed transmissson is reversed.  The environment
       variable	ZNULLS may be used to specify the number of nulls to send  be-
       fore  a ZDATA frame.  Values of 101 for a 4.77 mHz PC and 124 for an AT
       are typical.

lrzsz-0.12b			   2.6.1996				 SZ(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lsz&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help