日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ECS實例數據傳輸的實現方式

當您需要為云服務器ECS進行軟件部署、數據備份和恢復、數據導入和導出等操作時,您可以使用類Unix/Linux平臺上常用的文件傳輸工具實現。本文通過介紹文件傳輸的基本原理,以及常用的NETCAT、SCP和Rsync文件傳輸工具,您可以根據實際需要選擇合適的文件傳輸工具。

文件傳輸原理

文件傳輸是信息傳輸的一種形式,它是在數據源和數據宿之間傳送文件數據的過程,也稱為文件數據通信。操作系統把文件數據提取到內存中做暫存,再復制到目的地,加密是在文件外加了一個殼,文件本身仍然是一個整體,復制只是把這個整體轉移到其他地方,不需要解密,只有在打開壓縮包時才需要解密。在數據傳輸過程中,您需要注意:

  • 一個大文件作為一個數據整體,是不可能瞬間從一臺主機轉移到其他主機的,傳輸是一個持續的過程,但不是把文件分割了,因此,如果在傳輸的過程中意外中斷,目標主機的路徑中不會有該文件。

  • 如果傳輸的是多個文件,那么這些文件將會按順序分別傳輸,如果傳輸過程發生中斷,則正在傳輸的文件會傳輸失敗,但不會影響已經傳完的文件(如果傳輸的是文件壓縮包,則無論壓縮包中有幾個文件,該壓縮包均會被視為一個文件)。

通常我們看到的諸如NETCAT、SCP、Rsync等都是可以用來傳輸文件數據的工具,下面我們將詳細介紹主要文件傳輸工具的特點以及用法。

NETCAT

NETCAT在網絡工具中有“瑞士軍刀”的美譽,它功能強大,作為網絡工具的同時,它傳輸文件的能力也不容小覷。它可以建立TCP連接、發送UDP數據包、對TCP和UDP端口進行掃描、處理IPv4和IPv6數據包。

參數說明

NETCAT常用參數說明如下表所示:

參數

說明

-C

一直不斷連接

-g <網關>

設置路由器躍程通信網關,最多可設置8個

-G <指向器數目>

設置來源路由指向器,其數值為4的倍數

-i <延遲秒數>

設置時間間隔,以便傳送信息及掃描通信端口

-l

使用監聽模式,管控傳入的資料

-o <輸出文件>

指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存

-p <通信端口>

設置本地主機使用的通信端口

-r

指定本地與遠端主機的通信端口

-s <IP地址>

本地源地址

-u

使用UDP傳輸協議

-v

顯示指令執行過程

-w <超時秒數>

設置等待連線的時間

-z

使用0輸入/輸出模式,只在掃描通信端口時使用

-n

直接使用IP地址,而不通過域名服務器

常用示例

NC是NETCAT的簡寫,NC的常用示例如下:

  • 端口掃描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
  • 從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

  • 用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

SCP(Secure Copy)即安全拷貝,是一種在兩個服務器(本地與本地、本地與遠程、遠程與遠程)之間安全地進行文件傳輸的方法,它以SSH協議為基礎。SCP命令的用法和RCP命令格式非常類似,一般推薦使用SCP命令,因為它比RCP更安全。

  • SCP在需要進行驗證時會要求您輸入密碼或口令。

  • SCP命令使用SSH來傳輸數據,并使用與SSH相同的認證模式,提供同樣的安全保障。

    SSH是目前較可靠的、為遠程登錄會話和其他網絡服務提供安全性的協議,利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。SCP是基于SSH的應用,所以進行數據傳輸的機器上必須支持SSH服務。

特點說明

SCP的特點如下:

  • SCP類似于RCP,它能夠保留一個特定文件系統上的文件屬性,能夠保留文件屬性或者需要遞歸地拷貝子目錄。

  • SCP具備更好的文件傳輸保密性。與此同時,付出的代價就是文件傳輸時需要輸入密碼,而且涉及到SSH的一些配置問題,這些都影響其使用的方便性,對于有特定需求的用戶來說,它是比較合適的傳輸工具。

參數說明

SCP常用參數說明如下表所示:

參數

說明

-v

詳細方式顯示輸出,可以用來調試連接、驗證或者配置問題

-B

使用批處理模式(傳輸過程中不詢問傳輸口令或短語)

-C

在復制過程中壓縮文件或目錄

-P

如果默認SSH端口不是22,則使用此選項指定SSH端口

-r

遞歸復制整個目錄

-4

強制SCP命令只使用IPv4地址

-6

強制SCP命令只使用IPv6地址

常用示例

SCP的常用示例如下:

  • 生成RSA類型的密鑰

    使用SCP命令時,需要輸入密碼,如果不想每次都輸入,可以通過配置SSH,這樣在兩臺機器之間拷貝文件時不需要每次都輸入用戶名和密碼。返回示例

    上述命令生成RSA類型的密鑰。在提示密鑰的保存路徑和密碼時,可以直接回車使用默認路徑和空密碼。這樣,生成的公共密鑰保存在/.ssh/id_rsa.pub,私有密鑰保存在 /.ssh/id_rsa。然后把這個密鑰對中的公共密鑰的內容復制到要訪問的機器上的/.ssh/authorized_keys文件中。這樣,下次再訪問那臺機器時,就不用輸入密碼了。

  • 在兩臺Linux主機間復制文件

    命令基本格式:

    scp [可選參數] file_source file_target
    • 從本地復制文件到遠程服務器(如下四種方式)

      序號

      命令

      指定用戶名和密碼

      指定遠程目錄或具體的文件名

      1

      scp local_file remote_username@remote_ip:remote_folder

      指定遠程主機的用戶名后,執行命令時需要再輸入密碼。

      指定了遠程的目錄,命令執行后會將本地文件復制到遠程指定的目錄下。

      2

      scp local_file remote_username@remote_ip:remote_file

      指定遠程主機的用戶名后,執行命令時需要再輸入密碼。

      指定了具體的文件名,命令執行后會將本地文件復制到遠程主機上,且命名為指定的文件名。

      3

      scp local_file remote_ip:remote_folder

      未指定遠程主機的用戶名,則執行命令后需要輸入用戶名和密碼。

      指定了遠程的目錄,命令執行后會將本地文件復制到遠程指定的目錄下。

      4

      scp local_file remote_ip:remote_file

      未指定遠程主機的用戶名,則執行命令后需要輸入用戶名和密碼。

      指定了具體的文件名,命令執行后會將本地文件復制到遠程主機上,且命名為指定的文件名。

      以使用第4條命令,將本地test.txt文件復制到遠程主機(公網IP地址為:120.XXX.XXX.XXX)并命名為test02.txt為例,操作如下:

      1. 在本地主機上執行scp test.txt 120.XXX.XXX.XXX:test02.txt命令,然后根據提示輸入遠程主機的登錄密碼。遠程主機.png

      2. 在遠程主機上查看文件。遠程主機查看文件.png

        您可以在遠程主機上看到復制成功的test02.txt文件。

    • 從遠程服務器復制文件到本地

      從遠程復制到本地,只要將從本地復制到遠程的命令的后2個參數調換順序即可。

      scp remote_username@remote_ip:remote_folder local_file
  • 在兩臺Linux主機間復制目錄

    命令基本格式:

    scp -r file_source file_target
    • 從本地復制目錄到遠程服務器(如下兩種方式)

      • 指定遠程主機的用戶名后,執行命令時需要再輸入密碼:

        scp -r local_file remote_username@remote_ip:remote_folder
      • 未指定遠程主機的用戶名,則執行命令后需要輸入用戶名和密碼:

        scp -r local_file remote_ip:remote_folder
    • 從遠程服務器復制目錄到本地

      從遠程復制到本地,只要將從本地復制到遠程的命令的后2個參數調換順序即可。

      scp -r remote_username@remote_ip:remote_folder local_file

Rsync

Rsync是Linux/Unix文件同步和傳送工具。它是用于替代RCP的一個工具,Rsync可以通過rsh或ssh使用,也能以daemon模式運行,在以daemon方式運行時,Rsync server會開啟一個873端口,等待客戶端連接。連接時Rsync server會檢查口令是否相符,若通過口令驗證,則可以進行文件傳輸,第一次連通完成時,會把整份文件傳輸一次,以后則只需進行增量備份。

安裝說明

您需要在本地和遠程服務器上安裝Rsync,Rsync的安裝方式如下:

說明

可以使用每個發行版本自帶的安裝包管理器進行安裝。


sudo apt-get  install  rsync      #在debian、ubuntu 等在線安裝方法;
slackpkg  install  rsync          #Slackware 軟件包在線安裝;

源碼編譯安裝:

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常用參數說明如下表所示:

參數

說明

-v

詳細模式輸出

-a

歸檔模式,表示以遞歸的方式傳輸文件,并保持所有文件屬性不變,相當于使用了組合參數-rlptgoD

-r

對子目錄以遞歸模式處理

-l

保留軟鏈接

-p

保持文件權限

-t

保持文件時間信息

-g

保持文件屬組信息

-o

保持文件屬主信息

-D

保持設備文件信息

-H

保留硬鏈結

-S

對稀疏文件進行特殊處理以節省DST的空間

-z

對備份的文件在傳輸時進行壓縮處理

工作模式

Rsync有以下六種不同的工作模式:

  • 拷貝本地文件,將/home/coremail目錄下的文件拷貝到/cmbak目錄下。

    rsync -avSH /home/coremail/ /cmbak/
  • 拷貝本地機器的內容到遠程機器。

    rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
  • 拷貝遠程機器的內容到本地機器。

    rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
  • 拷貝遠程Rsync服務器(daemon形式運行Rsync)的文件到本地機。

    rsync -av root@172.16.78.192::www /databack
  • 拷貝本地機器文件到遠程Rsync服務器(daemon形式運行rsync)中。當DST路徑信息包含::分隔符時,啟動該模式。

    rsync -av /databack root@172.16.78.192::www
  • 顯示遠程機器的文件列表。這類似于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          #驗證密碼文件

相關文檔