首頁 >運維 >linux運維 >關於雲端伺服器ECS之間資料傳輸的實作方式

關於雲端伺服器ECS之間資料傳輸的實作方式

坏嘻嘻
坏嘻嘻原創
2018-09-19 14:01:373542瀏覽

本文在介紹關於雲端伺服器ECS之間資料傳輸的實現方式的基礎上,重點探討了其具體步驟,本文內容很緊湊,希望大家耐心學習。

雲端伺服器ECS之間資料傳輸的實作方式

簡介

在資訊化高速發展的今天,伺服器每天都會與其它單機交換大量文件數據,文件傳輸對大家來說是家常便飯。因此,其重要性就不言而喻了。文件傳輸方式各有不同,選擇適合自己的文件傳輸工具,在工作中能發揮事半功倍的效果。節省資源、方便傳輸、提升工作效率、加密保護等等。因此,許多檔案傳輸工具應運而生,例如:NC、FTP、SCP、NFS、SAMBA、RSYNC/SERVERSYNC等等,每種方式都有自己的特色。本文將首先簡單介紹一下文件傳輸的基本原理,然後,詳細介紹類unix/linux、windows平台上常用文件傳輸方式,並針對它們各自的特點進行比較,讓讀者對文件傳輸方式有比較詳盡地了解,從而能夠根據不同的需求選擇合適的文件傳輸方式。

檔案傳輸原理

檔案傳輸是訊息傳輸的一種形式,它是在資料來源和資料宿之間傳送檔案資料的過程,也稱為文件資料通訊。作業系統把檔案資料提取到記憶體中做暫存,再複製到目的地,加密就是在檔案外加了一個殼,檔案本身還是一個整體,複製只是把這個整體轉移到其它地方,不需要解密,只有打開壓縮包時才需解密。一個大檔案作為一個資料整體,是不可能瞬間從一台主機轉移到其它的主機,傳輸是一個持續的過程,但不是把檔案分割了,因此,如果在傳輸的過程中意外中斷,目標路徑中是不會有傳輸的文件,另外,如果傳輸的是多個文件,那麼,這些文件是按順序分別傳輸,如果中間中斷,則正在傳輸的文件會傳輸失敗,但是,之前已經傳完的文件傳輸成功(如果傳輸的是文件壓縮包,那麼,不管裡面有幾個文件,它本身被視為一個文件)。

通常我們看到的 NC、FTP、SCP、NFS 等等,都是可以用來傳輸檔案資料的工具,以下我們將詳細介紹主要檔案傳輸工具的特點以及用法。

NETCAT

在網路工具中有「瑞士軍刀」的美譽,它功能強大,作為網路工具的同時,它傳輸檔案的能力也不容小覷。

常用參數:

關於雲端伺服器ECS之間資料傳輸的實作方式

簡單用法範例

1.連接埠掃描21 -24(以IP192.168.2.34為例)。

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 类型的密钥:

關於雲端伺服器ECS之間資料傳輸的實作方式

上述命令生成 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

参数介绍:

關於雲端伺服器ECS之間資料傳輸的實作方式

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          #验证密码文件

以上是關於雲端伺服器ECS之間資料傳輸的實作方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn