背景:
在运维人在日常的运维工作中会经常使用到文件上传下载的操作,例如:
使用场景一:
在分析业务报错时,需要经常分析日志文件,但是有些业务报错是需要通过开发人员来分析的,这个时候要么开发人员亲自登入到指定的服务器上进行查看分析,但是这个情况一般是很少的,不经是生产环境,开发人员一般是无法登入到生产环境下去查看并分析日志的,大部分都是要求运维人员去下载日志文件,拿出来之后发送给开发人员进行分析排查的。
使用场景二:
只要系统运行在生产环境上,用户一直在使用,那么业务需求一定会在变动的,一旦变动了,就需要开发的,开发之后需要对系统进行一次版本发布的操作,那么就需要将文件上传到指定的服务应用上去的,这个避免不了的,大部分的生产环境要么在用户现场,要么就是安全要求,需要通过唯一的入口进行版本的发布,这时候就需要上传文件了。
上传下载文件的方式有很多,比如使用xftp工具,或者是直接是通过u盘的方式,但是大部分的生产环境都是不允许使用的,那么这时候只能使用了linux服务器自带的文件上传下载的功能了,如下我们就介绍一下rz、sz的使用。
sz命令
用途说明:
sz命令是利用zmodem协议来从linux服务器传送文件到本地,一次可以传送一个或多个文件。
常用参数
-a : 以文本方式传输(ascii)。
-b : 以二进制方式传输(binary)。
-e : 对控制字符转义(escape),这可以保证文件传输正确。注:
如果能够确定所传输的文件是文本格式的,使用 sz -a files
如果是二进制文件,使用 sz -be filessz:将选定的文件发送(send)到本地机器
样例演示:
需要先验证sz以来的软件包安装没了
[root@tomcat51 ~]# rpm -qa | grep lrzsz
lrzsz-0.12.20-27.1.el6.x86_64
如上的显示就是已经安装了,如果是没有安装可以执行如下的操作
yum install -y lrzsz
如果提示yum源不存在,需要先配置好yum源之后再进行安装
样例:
[root@master1 ~]# sz docker-19.03.9.tgz
选择需要下载的目录之后就是传输了
rz命令
常见参数:
-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错误”,文件上传就成功了,其他显示则表示文件上传出现问题了。
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到linux服务器
样例:
[root@master1 ~]# rz
总结:
rz,sz是linux/unix同windows进行zmodem文件传输的命令行工具。
优点就是不用再开一个sftp工具登录上去上传下载文件。从服务端发送文件到客户端:
sz filename
从客户端上传文件到服务端:
rz
在弹出的框中选择文件,上传文件的用户和组是当前登录的用户
其他参考 sz rz