本文在介紹關於雲端伺服器ECS之間資料傳輸的實現方式的基礎上,重點探討了其具體步驟,本文內容很緊湊,希望大家耐心學習。
雲端伺服器ECS之間資料傳輸的實作方式
簡介
在資訊化高速發展的今天,伺服器每天都會與其它單機交換大量文件數據,文件傳輸對大家來說是家常便飯。因此,其重要性就不言而喻了。文件傳輸方式各有不同,選擇適合自己的文件傳輸工具,在工作中能發揮事半功倍的效果。節省資源、方便傳輸、提升工作效率、加密保護等等。因此,許多檔案傳輸工具應運而生,例如:NC、FTP、SCP、NFS、SAMBA、RSYNC/SERVERSYNC等等,每種方式都有自己的特色。本文將首先簡單介紹一下文件傳輸的基本原理,然後,詳細介紹類unix/linux、windows平台上常用文件傳輸方式,並針對它們各自的特點進行比較,讓讀者對文件傳輸方式有比較詳盡地了解,從而能夠根據不同的需求選擇合適的文件傳輸方式。
檔案傳輸原理
檔案傳輸是訊息傳輸的一種形式,它是在資料來源和資料宿之間傳送檔案資料的過程,也稱為文件資料通訊。作業系統把檔案資料提取到記憶體中做暫存,再複製到目的地,加密就是在檔案外加了一個殼,檔案本身還是一個整體,複製只是把這個整體轉移到其它地方,不需要解密,只有打開壓縮包時才需解密。一個大檔案作為一個資料整體,是不可能瞬間從一台主機轉移到其它的主機,傳輸是一個持續的過程,但不是把檔案分割了,因此,如果在傳輸的過程中意外中斷,目標路徑中是不會有傳輸的文件,另外,如果傳輸的是多個文件,那麼,這些文件是按順序分別傳輸,如果中間中斷,則正在傳輸的文件會傳輸失敗,但是,之前已經傳完的文件傳輸成功(如果傳輸的是文件壓縮包,那麼,不管裡面有幾個文件,它本身被視為一個文件)。
通常我們看到的 NC、FTP、SCP、NFS 等等,都是可以用來傳輸檔案資料的工具,以下我們將詳細介紹主要檔案傳輸工具的特點以及用法。
NETCAT
在網路工具中有「瑞士軍刀」的美譽,它功能強大,作為網路工具的同時,它傳輸檔案的能力也不容小覷。
常用參數:
簡單用法範例
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 类型的密钥:
上述命令生成 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
参数介绍:
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中文網其他相關文章!