我使用过的Linux命令之sz - 下载文件,无需ftp/sftp

本文链接:http://codingstandards.iteye.com/blog/827637   (转载请注明出处)

用途说明

sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可以使用rz命令。参见《我使用过的Linux命令之rz - 批量上传文件,简单易用 》。

 

常用参数

-a 以文本方式传输(ascii)。

-b 以二进制方式传输(binary)。

-e 对控制字符转义(escape),这可以保证文件传输正确。

-c command

-i command 在接收端(本地)执行命令,但我没有尝试成功。

 

如果能够确定所传输的文件是文本格式的,使用 sz -a files

如果是二进制文件,使用 sz -be files

 

下载完了之后文件在哪个地方呢?

SecureCRT中,选择菜单项“选项(O)”下的“会话选项(S)”,左边切到“Xmodem/Zmodem”,即可看到上传和下载目录设置,也可更改。默认上传目录为 C:\Program Files\SecureCRT\upload,下载目录为 C:\Program Files\SecureCRT\download。

但在Vista下,到C:\Program Files\SecureCRT\download去看的时候并没有找到下载的文件,搜索了一下发现它们在下面的目录中:C:\Users\***\AppData\Local\VirtualStore\Program Files\SecureCRT\download,其中***为用户名。

 

使用示例

示例一 批量下载文本文件

本例演示了下载文本文件,比如c源代码。

[root@web src]# ls *.c
httptunnel_codec.c  s_agent2.c  s_conf.c  s_htserv.c  s_pop3.c    s_smtp.c   s_tcpfwd.c  s_telnet.c  s_user.c  s_xort.c
iSurf.c             s_agent.c   s_ftp.c   s_http.c    s_run.c     s_socks.c  s_tcpgum.c  s_term.c    s_via3.c
proxycfg.c          s_bridge.c  s_host.c  s_mime.c    s_server.c  s_task.c   s_tcphub.c  surf.c      s_via.c
[root@web src]# sz -a *.c
rz
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 httptunnel_codec.c...
  100%      22 KB    5 KB/s 00:00:04       0 错误
正在传输 iSurf.c...
  100%     890 bytes  890 bytes/s 00:00:01       0 错误
正在传输 proxycfg.c...
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 s_agent2.c...
  100%       4 KB    1 KB/s 00:00:03       0 错误
正在传输 s_agent.c...
  100%       6 KB    3 KB/s 00:00:02       0 错误
正在传输 s_bridge.c...
  100%       6 KB    0 KB/s 00:00:10       0 错误
  100%       6 KB    0 KB/s 00:00:10       0 错误
正在传输 s_conf.c...
  100%       9 KB    0 KB/s 00:00:41       0 错误
正在传输 s_ftp.c...
  100%      18 KB    0 KB/s 00:04:26       0 错误

[root@web src]# **01000000039a32
-bash: **01000000039a32: command not found
[root@web src]#
由于网络不稳定,被自动终止掉了。
[root@web src]#
[root@web src]#
[root@web src]#
[root@web src]# sz -a *.c       
rz
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 httptunnel_codec.c...
  100%      22 KB    2 KB/s 00:00:10       0 错误
正在传输 iSurf.c...
  100%     890 bytes  890 bytes/s 00:00:01       0 错误
正在传输 proxycfg.c...
  100%       1 KB    1 KB/s 00:00:01       0 错误
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 s_agent2.c...
  100%       4 KB    2 KB/s 00:00:02       0 错误
  100%       4 KB    2 KB/s 00:00:02       0 错误
正在传输 s_agent.c...
  100%       6 KB    6 KB/s 00:00:01       0 错误
正在传输 s_bridge.c...
  100%       6 KB    1 KB/s 00:00:04       0 错误
正在传输 s_conf.c...
  100%       9 KB    4 KB/s 00:00:02       0 错误
正在传输 s_ftp.c...
  100%      18 KB    4 KB/s 00:00:04       0 错误
正在传输 s_host.c...
  100%       3 KB    1 KB/s 00:00:02       0 错误
正在传输 s_htserv.c...
  100%       8 KB    2 KB/s 00:00:04       0 错误
正在传输 s_http.c...
  100%      32 KB    3 KB/s 00:00:09       0 错误
正在传输 s_mime.c...
  100%       1 KB    1 KB/s 00:00:01       0 错误
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 s_pop3.c...
  100%       3 KB    3 KB/s 00:00:01       0 错误
正在传输 s_run.c...
  100%     900 bytes  900 bytes/s 00:00:01       0 错误
正在传输 s_server.c...
  100%       5 KB    2 KB/s 00:00:02       0 错误
正在传输 s_smtp.c...
  100%     990 bytes  990 bytes/s 00:00:01       0 错误
正在传输 s_socks.c...
  100%      19 KB   19 KB/s 00:00:01       0 错误
正在传输 s_task.c...
  100%       1 KB    1 KB/s 00:00:01       0 错误
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 s_tcpfwd.c...
  100%      10 KB    5 KB/s 00:00:02       0 错误
正在传输 s_tcpgum.c...
  100%       8 KB    4 KB/s 00:00:02       0 错误
正在传输 s_tcphub.c...
  100%      11 KB   11 KB/s 00:00:01       0 错误
正在传输 s_telnet.c...
  100%       3 KB    3 KB/s 00:00:01       0 错误
正在传输 s_term.c...
  100%       7 KB    7 KB/s 00:00:01       0 错误
正在传输 surf.c...
  100%       2 KB    2 KB/s 00:00:01       0 错误
正在传输 s_user.c...
  100%       6 KB    3 KB/s 00:00:02       0 错误
正在传输 s_via3.c...
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 s_via.c...
  100%       5 KB    2 KB/s 00:00:02       0 错误
正在传输 s_xort.c...
  100%       4 KB    4 KB/s 00:00:01       0 错误

奫root@web src]#

 

示例二 下载二进制文件

本例演示了下载二进制文件,先将前面的c源代码压缩到一个zip文件。

[root@web src]# zip source.zip *.c
  adding: httptunnel_codec.c (deflated 88%)
  adding: iSurf.c (deflated 58%)
  adding: proxycfg.c (deflated 56%)
  adding: s_agent2.c (deflated 69%)
  adding: s_agent.c (deflated 73%)
  adding: s_bridge.c (deflated 74%)
  adding: s_conf.c (deflated 74%)
  adding: s_ftp.c (deflated 79%)
  adding: s_host.c (deflated 73%)
  adding: s_htserv.c (deflated 76%)
  adding: s_http.c (deflated 75%)
  adding: s_mime.c (deflated 61%)
  adding: s_pop3.c (deflated 66%)
  adding: s_run.c (deflated 58%)
  adding: s_server.c (deflated 69%)
  adding: s_smtp.c (deflated 52%)
  adding: s_socks.c (deflated 79%)
  adding: s_task.c (deflated 65%)
  adding: s_tcpfwd.c (deflated 75%)
  adding: s_tcpgum.c (deflated 73%)
  adding: s_tcphub.c (deflated 75%)
  adding: s_telnet.c (deflated 65%)
  adding: s_term.c (deflated 72%)
  adding: surf.c (deflated 58%)
  adding: s_user.c (deflated 72%)
  adding: s_via3.c (deflated 52%)
  adding: s_via.c (deflated 71%)
  adding: s_xort.c (deflated 70%)
[root@web src]# ls -l source.zip
-rw-r--r-- 1 root root 57027 11-28 21:37 source.zip
[root@web src]# sz -be source.zip
rz
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 source.zip...
  100%      55 KB    3 KB/s 00:00:15       0 错误

奜O[root@web src]#

 

 

我使用过的Linux命令之rz - 批量上传文件,简单易用

本文链接:http://codingstandards.iteye.com/blog/818148   (转载请注明出处)

用途说明

  rz命令可以批量上传文件,当然也可上传单个文件啦。使用的协议是古老的ZMODEM协议,虽然协议古老,但毫不影响的简单易用的特性。一般情况我们要上传文件到Linux系统,要么使用ftp(还得架设ftp服务端),要么使用sftp,上传一个文件要敲不少命令。而这里介绍的rz命令,只需要简单的在命令行上敲一下 rz -be 命令,在SecureCRT下就会弹出文件选择框让你选择需要上传的文件了,而且可以选择多个;不过,如果是用putty,那就无能为力了。

  下面简单说下ZModem协议的事情,先得从XMODEM协议(XMODEM   Protocol)说起。XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的卫星连接的情况时,问题更加严重。

  使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。

  ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。它是Xmodem   文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。 

  从SecureCRT帮助主题中搜索Zmodem,就会找到如下关于Zmodem的说明:Zmodem  Zmodem is a file transfer protocol that touts speed and reliability. In this terminal emulation application, it provides a mechanism for secure file transfers as long as the remote machine has Zmodem support installed. is a full-duplex file transfer protocol that supports fast data transfer rates and effective error detection. Zmodem is very user friendly, allowing either the sending or receiving party to initiate a file transfer. Zmodem supports multiple file ("batch") transfers, and allows the use of wildcards when specifying filenames. Zmodem also supports resuming most prior Zmodem file transfer attempts.

  与rz命令相对应的,sz命令可以实现从Linux服务器下载文件到本地。

常用参数

-b 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.)

-e 对所有控制字符转义。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)

如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:

rz -be

此命令执行时,会弹出文件选择对话框,选择好需要上传的文件之后,点确定,就可以开始上传的过程了。上传的速度取决于当时网络的状况。

如果执行完毕显示“0错误”,文件上传就成功了,其他显示则表示文件上传出现问题了。

 

有些版本的Linux下,执行rz命令报“command not found”,可以到安装盘中找 lrzsz*.rpm 去安装。

使用示例

示例一 将本地的jdk安装程序上传到Linux服务器

[root@qzt196 setup]# rz -be
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 jdk-6u21-linux-i586-rpm.bin...
  100%   77628 KB  137 KB/s 00:09:23       0 错误

奫root@qzt196 setup]# ls -l jdk-6u21-linux-i586-rpm.bin
-rw-r--r-- 1 root root 79491215 06-25 07:06 jdk-6u21-linux-i586-rpm.bin
[root@qzt196 setup]#

示例二将本地的ant安装程序上传到Linux服务器

[root@qzt196 setup]# rz -be
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 apache-ant-1.8.1-bin.tar.gz...
  100%    8071 KB  115 KB/s 00:01:10       0 错误

奫root@qzt196 setup]#

 

示例三 选择文件时取消

[root@qzt196 ~]# rz -be
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。

奫root@qzt196 ~]#

 

示例四 上传文件过程中按Ctrl+C终止

[root@qzt196 ~]# rz -be
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 apache-tomcat-5.5.31.tar.gz...
    1%      85 KB   10 KB/s 00:12:32 ETA   0 错误

rz: apache-tomcat-5.5.31.tar.gz removed.
[root@qzt196 ~]#

 

示例五 一次上传多个文件

[root@qzt196 ~]# rz -be
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 applink.c...
  100%       2 KB    2 KB/s 00:00:01       0 错误
正在传输 arguments.cpp...
  100%       2 KB    2 KB/s 00:00:01       0 错误
正在传输 buffer.cpp...
  100%     825 bytes  825 bytes/s 00:00:01       0 错误
正在传输 build...
  100%       1 KB    1 KB/s 00:00:01       0 错误
正在传输 bulk.cpp...
  100%       2 KB    2 KB/s 00:00:01       0 错误

奫root@qzt196 ~]#

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐