如果你有一个文件需要在两台Linux服务器上进行传输,你会怎么办?
如果你要将Linux服务器上的文件传给不会编程的产品经理,你又会怎么办?
1.问题引入
不知道大家有没有遇到过这样的问题:
在实际的开发过程中,很多时候我们都不直接在本机上开发,一般都在远程服务器上开发并运行程序。
比如二胖在实际开发中就会使用到很多台服务器:我有一台笔记本电脑,通过ssh连接着很多台服务器[如上图所示],我需要经常在不同的服务器上进行开发,所以总会遇到在不同计算机之间传输文件的情景。
可以归纳为以下几个情景:
个人电脑和个人电脑之间传递文件;服务器和服务器之间传递文件;服务器与个人电脑(笔记本)之间传递文件。2.解决方法
我们先来说说第一个情景——个人电脑和个人电脑之间是如何传递文件的。个人电脑的操作系统基本都是图形界面的操作系统,比如Windows操作系统和MacOS操作系统,传递文件最简单的方法就是打开电脑或者电脑进行传递。
是不是感觉二胖在说废话啊?嘿嘿,我感觉也是的,不过为了让文章更加完整,二胖还是提及一下。其实很多公司内部都有自己的即时聊天系统软件,一般不会用和等第三方软件来进行数据传输,不过道理都是一样的。
好啦,现在来讨论第二个情景,服务器与服务器之间传递文件。
我想大部分童鞋最常使用的是 scp 命令来进行文件传递的吧。
scp命令:
简单来说,Linux scp就是用于Linux之间复制文件和目录的命令。
scp是 secure copy的缩写, scp是Linux系统下基于ssh登陆进行安全远程文件拷贝的命令。
scp [可选参数] file_source file_target
因为今天主要讲的不是scp命令,在这里就不过多阐述了,想要了解的童鞋可以点击下面这个视频,二胖录了个小教程讲解scp命令的用法。
今天的重磅是第三个情景——服务器与个人电脑之间的文件传递,相信很多同学这时候会迫不及待地说:“直接rz,sz命令不就得了吗,至于那么麻烦吗?”。
确实,sz/rz命令是Linux服务器与ssh客户端进行文件交互的命令,也就是上传和下载文件到服务器和本地。
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
确实,这两个命令是可以实现服务器与个人电脑之间上传下载文件的。不过有两个问题,当文件十分大的时候,对于部分电脑而言,sz/rz就会失败。还有,如果我们需要把文件传递给其他人,而不是从服务器上下载文件到本地,该怎么解决?
这两个命令也不细讲,对Linux命令行不太熟悉的童鞋可以关注我,之后我会录制Linux系统的基本使用教程,到时候大家可以详细了解。
现在我们继续了解第三种情景下,怎么用一行代码来搭建一个http服务器实现文件传输。
Python2:
python -m SimpleHTTPServer port
Python3:
python3 -m http.server port
下面就录制一个视频给大家进行详细讲解。当然http服务器如果只用来传文件就大材小用了,它还可以用来做web服务器。
用一行命令就可以运行这个http server了,赶快来制作你的第一个网站吧!
近期热文:
二胖:两行代码制作一个高逼格的二维码【附教程】93 赞同 · 12 评论文章二胖:用Python发一个高逼格的朋友圈【附代码】1200 赞同 · 98 评论文章二胖:这可能是我见过最好的编程指南了!2.9 万赞同 · 608 评论文章关注知乎专栏【大数据前沿】学习更多:
大数据前沿zhuanlan.zhihu.com/datatalks