文件共享传输的几种方式
开发时经常遇到以下场景:
- 本地机器上的文件上传到服务器上
- 服务器上的文件下载到本地机器上
- 服务器A的文件拷贝到服务器B上
以下几种方式是在工作中经常用到的:
python起服务方式
做一个简单的服务器
$ nohup python -m SimpleHTTPServer 8711 >/dev/null 2>&1 &
- 上传到服务器
服务器上wget
$ wget http://ip:port/filename.txt
- 下载到本地
浏览器上输入该机器IP+端口即可
scp方式
# 把file1传输到10.0.1.1机器上的/home/work/下
$ scp file1 work@10.0.1.1:/home/work/xxx.conf
如果传文件夹,比较建议先打个tar包再传输。
一般内网传输文件都非常快,为了不影响互相机器的带宽,视情况最好加个限速。 -l 参数,比如 scp -l 800 file1 file2,就是限速800Kbit/s,差不多100KB/s。
rsync方式
这种方式和scp用法很像。
$ rsync file1 user@host:/xx/file2
如果传输目录,需要加一个-a参数。如果传输目录过程担心传递发生意外问题,可以空跑一次,就是模拟一次传输,并不是真的传过去。-n是模拟,-v是看到详情。这样执行
$ rsync -nva dir user@host:/xx/
sftp方式
一般用于把服务器上的文件下载到本地
- 远程机器上客户端登sftp
- put 文件
- 本地客户端等sftp
- get 文件
rz sz命令
需要机器上安装这些工具,rz需要shell软件上设置监听特殊字符,以便调起文件浏览器。
samba方式
这种方式早年在度厂用过,后来再没用过了..