云服务器 ECS 配置:云服务器ECS之间数据传输的实现方式


云服务器ECS之间数据传输的实现方式

简介html

在信息化高速发展的今天,服务器天天都会与其它单机交换大量文件数据,文件传输对你们来讲是屡见不鲜。所以,其重要性就不言而喻了。文件传输方式各有不一样,选择一款合适本身的文件传输工具,在工做中能起到事半功倍的效果。节省资源、方便传输、提高工做效率、加密保护等等。所以,不少文件传输工具应运而生,例如:NC、FTP、SCP、NFS、SAMBA、RSYNC/SERVERSYNC等等,每种方式都有本身的特色。本文将首先简单介绍一下文件传输的基本原理,而后,详细介绍类unix/linux、windows平台上经常使用文件传输方式,并针对它们各自的特色进行比较,让读者对文件传输方式有比较详尽地了解,从而可以根据不一样的须要选择合适的文件传输方式。java

文件传输原理linux

文件传输是信息传输的一种形式,它是在数据源和数据宿之间传送文件数据的过程,也称文件数据通讯。操做系统把文件数据提取到内存中作暂存,再复制到目的地,加密就是在文件外加了一个壳,文件自己仍是一个总体,复制只是把这个总体转移到其它地方,不须要解密,只有打开压缩包时才需解密。一个大文件做为一个数据总体,是不可能瞬间从一台主机转移到其它的主机,传输是一个持续的过程,但不是把文件分割了,所以,若是在传输的过程当中意外中断,目标路径中是不会有传输的文件,另外,若是传输的是多个文件,那么,这些文件是按顺序分别传输,若是中间中断,则正在传输的文件会传输失败,可是,以前已经传完的文件传输成功(若是传输的是文件压缩包,那么,无论里面有几个文件,它自己被视为一个文件)。nginx

一般咱们看到的 NC、FTP、SCP、NFS 等等,都是能够用来传输文件数据的工具,下面咱们将详细介绍主要文件传输工具的特色以及用法。ubuntu

NETCATwindows

在网络工具中有“瑞士军刀”的美誉,它功能强大,做为网络工具的同时,它传输文件的能力也不容小觑。缓存

经常使用参数:安全


image

简单用法举例服务器

1.端口扫描21-24(以IP192.168.2.34为例)。markdown

nc -v -w 2 192.168.2.34 -z 21-24

nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused

Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!

nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused

nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused

2.从192.168.2.33拷贝文件到192.168.2.34。

在192.168.2.34上:

nc -l 1234 > test.txt

在192.168.2.33上:

nc 192.168.2.34 < test.txt

3.用nc命令操做memcached。

存储数据:

printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211

获取数据:

printf “get keyrn” |nc 192.168.2.34 11211

删除数据:

printf “delete keyrn” |nc 192.168.2.34 11211

查看状态:

printf “statsrn” |nc 192.168.2.34 11211

模拟top命令查看状态:

watch “echo stats” |nc 192.168.2.34 11211

清空缓存:

printf “flush_allrn” |nc 192.168.2.34 11211       #谨慎操做,清空了缓存就没了

SCP(安全拷贝 secure copy)

介绍

SCP 命令的用法和 RCP 命令格式很是相似,区别就是 SCP 提供更安全保障,SCP 在须要进行验证时会要求你输入密码或口令,通常推荐使用 SCP 命令,由于它比 RCP 更安全。SCP 命令使用 SSH 来传输数据,并使用与 SSH 相同的认证模式,提供一样的安全保障,SSH 是目前较可靠得,为远程登陆会话和其余网络服务提供安全性的协议,利用 SSH 协议能够有效防止远程管理过程当中的信息泄露问题。SCP 是基于 SSH 的应用,因此进行数据传输的机器上必须支持 SSH 服务。

特色

SCP 相似于RCP, 它可以保留一个特定文件系统上的文件属性,可以保留文件属性或者须要递归的拷贝子目录。

SCP它具有更好文件传输保密性。与此同时,付出的代价就是文件传输时须要输入密码并且涉及到 SSH 的一些配置问题,这些都影响其使用的方便性,对于有特定需求的用户,是比较合适的传输工具。

经常使用示例

使用 SCP 命令,须要输入密码,若是不想每次都输入,能够经过配置 SSH,这样在两台机器间拷贝文件时不须要每次都输入用户名和密码:

生成 RSA 类型的密钥:

image

上述命令生成 RSA 类型的密钥。在提示密钥的保存路径和密码时,能够直接回车使用默认路径和空密码。这样,生成的公共密钥保存/.ssh/id_rsa.pub,私有密钥保存在 /.ssh/id_rsa 。而后把这个密钥对中的公共密钥的内容复制到要访问的机器上的 /.ssh/authorized_keys 文件中。这样,下次再访问那台机器时,就不用输入密码了。

scp能够在 2个 linux 主机间复制文件

命令基本格式:

scp [可选参数] file_source file_target

从本地复制到远程(以下四种方式):

scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file

注:第1,2个指定了用户名,命令执行后须要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名。

第3,4个没有指定用户名,命令执行后须要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。

从远程复制到本地:

注:从远程复制到本地,只要将从本地复制到远程的命令的后2个参数 调换顺序 便可

scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/i.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

Rsync

Rsync是linux/Unix文件同步和传送工具。用于替代rcp的一个工具,rsync能够经过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去链接。链接时rsync server会检查口令是否相符,若经过口令查核,则能够经过进行文件传输,第一次连通完成时,会把整份文件传输一次,之后则就只需进行增量备份。

安装方式:

注:可使用每一个发行版本自带的安装包管理器安装。

sudo apt-get  install  rsync      #在debian、ubuntu 等在线安装方法;
slackpkg  install  rsync          #Slackware 软件包在线安装;
yum install rsync                 #Fedora、Redhat 等系统安装方法;

源码编译安装:

wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
tar xf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure && make && make install

参数介绍:

image


rsync六种不一样的工做模式:

1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下。

rsync -avSH /home/coremail/ /cmbak/

2.拷贝本地机器的内容到远程机器。

rsync -av /home/coremail/ 192.168.11.12:/home/coremail/

3.拷贝远程机器的内容到本地机器。

rsync -av 192.168.11.11:/home/coremail/ /home/coremail/

4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机。

rsync -av root@172.16.78.192::www /databack

5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式。

rsync -av /databack root@172.16.78.192::www

6.显示远程机的文件列表。这相似于rsync传输,不过只要在命令中省略掉本地机信息便可。

rsync -v rsync://192.168.11.11/data

rsync配置文件说明:

cat/etc/rsyncd.conf              #内容以下
port = 873                       #端口号
uid = nobody                     #指定当模块传输文件的守护进程UID
gid = nobody                     #指定当模块传输文件的守护进程GID
use chroot = no                  #使用chroot到文件系统中的目录中
max connections = 10             #最大并发链接数
strict modes = yes               #指定是否检查口令文件的权限
pid file = /usr/local/rsyncd/rsyncd.pid       #指定PID文件
lock file = /usr/local/rsyncd/rsyncd.lock     #指定支持max connection的锁文件,默认为/var/run/rsyncd.lock
motd file = /usr/local/rsyncd/rsyncd.motd     #定义服务器信息的,本身写 rsyncd.motd 文件内容
log file = /usr/local/rsyncd/rsync.log        #rsync 服务器的日志
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[conf]                                   #自定义模块
path = /usr/local/nginx/conf             #用来指定要备份的目录
comment = Nginx conf
ignore errors                            #能够忽略一些IO错误
read only = no                           #设置no,客户端能够上传文件,yes是只读
write only = no                          #no为客户端能够下载,yes不能下载
hosts allow = 192.168.2.0/24             #能够链接的IP
hosts deny = *                           #禁止链接的IP
list = false                             #客户请求时,使用模块列表
uid = root
gid = root
auth users = backup                      #链接用户名,和linux系统用户名无关系
secrets file = /etc/rsyncd.pass          #验证密码文件

原文连接