linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件

35 篇文章 0 订阅

linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件

计算机联网的主要目的就是资源共享。在资源共享方面,使用最多的是文件共享。有多种方法可以用来在网络中传输文件,本文介绍了ftp,sftp,rsync,scp,套接字这5种方法:

假设目标是把db2a主机上的/tmp/db2a.filea拷贝到db2b主机的/tmp目录里,或者把db2b主机的/tmp/db2b.fileb文件拷贝到主机db2a的/tmp目录里

1. ftp

db2a上安装vsftpd服务
qingsong@db2a:/tmp$ sudo apt-get install vsftpd
为了确保别的机器可以上传数据到db2a上,必须要编辑/etc/vsftpd.conf文件,将write_enable=YES这一行的注释去掉。否则上传文件的时候会报错“550 Permission denied.”
qingsong@db2a:/tmp$ sudo sed -i 's/#write_enable=YES/write_enable=YES/' /etc/vsftpd.conf
qingsong@db2a:/tmp$ sudo service vsftpd restart

db2b上:
qingsong@db2b:/tmp$ ftp db2a
Connected to db2a.
220 (vsFTPd 3.0.2)
Name (db2a:qingsong): qingsong
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /tmp <--这里的命令都是在db2a上执行的,进入了db2a主机的/tmp目录里
250 Directory successfully changed.
ftp> get db2a.filea <--将db2a.filea下载到db2b的当前目录
local: db2a.filea remote: db2a.filea
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for db2a.filea (23 bytes).
226 Transfer complete.
23 bytes received in 0.00 secs (36.8 kB/s)
ftp> put /tmp/db2b.fileb <--将db2b.fileb上传到db2a的/tmp目录下
local: /tmp/db2b.fileb remote: /tmp/db2b.fileb
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
5 bytes sent in 0.00 secs (37.6 kB/s)
ftp> quit
221 Goodbye.
qingsong@db2b:/tmp$

利用ftp,也可以从 windows上连接到linux上传和下载数据,省得使用SSH Secure File Transfer Client和flashfxp工具了

2. sftp

SFTP是一个类似于FTP的文件传输系统,它运行在SSH连接之上并模拟成FTP接口,它和上面的ftp命令用法一模一样,就不再介绍了。

3. scp

把db2a.filea 拷贝到db2b上:
qingsong@db2a:/tmp$ scp db2a.filea db2b:/tmp
把db2b.fileb 拷贝到db2a上:
qingsong@db2a:/tmp$ scp db2b:/tmp/db2b.fileb /tmp

4. rsync

rsync可以对位于不同位置的文件和目录进行同步,它利用差异计算以及压缩技术来最小化数据传输量。相对于cp命令,rsync的优势在于使用了高效的差异算法。另外,它还支持网络数据传输。在进行复制的同时,rsync会比较源端和目的端的文件,只有当文件有更新时才进行复制。

复制db2b.fileb到db2a上:
qingsong@db2b:/tmp$ rsync -av /tmp/db2b.fileb qingsong@db2a:/tmp
qingsong@db2a's password:
sending incremental file list
db2b.fileb

sent 121 bytes received 35 bytes 62.40 bytes/sec
total size is 5 speedup is 0.03

复制db2a.filea到db2b上:
qingsong@db2b:/tmp$ rsync -av qingsong@db2a:/tmp/db2a.filea /tmp
qingsong@db2a's password:
receiving incremental file list
db2a.filea

sent 43 bytes received 139 bytes 52.00 bytes/sec
total size is 23 speedup is 0.13

参数中的-a表示要进行归档;-v表示在stdout上打印出细节信息或进度;

5. 套接字

db2a上使用“nc -l 1234”在端口1234上创建一个套接字并监听
db2b上使用nc HOSTNAME 1234连接到该套接字,如果在db2b上输入信息,就会在db2a的终端上显示

db2a上创建套接字:
qingsong@db2a:/tmp$ nc -l 1234

这时在db2b上连接到套接字,并输入信息:
qingsong@db2b:/tmp$ nc db2a 1234
Hello, this is db2b
Can you receive?


在db2a的终端上会显示:
qingsong@db2a:/tmp$ nc -l 1234
Hello, this is db2b
Can you receive?


同样的,也可以传文件,下面的办法将db2b.fileb传到主机db2a上
db2a上:
qingsong@db2a:/tmp$ nc -l 1234 > db2b.fileb
db2b上:
qingsong@db2b:/tmp$ nc db2a 1234 < db2b.fileb
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值