1.scp傳輸
scp -r /data/file root@ip:/data/ scp -C /data/sda.img root@ip:/data/img/
#-r: 支持目錄
#-C: 啟用壓縮傳送
scp傳輸速度較慢,但使用ssh通道保證了傳輸的安全性
2.rsync差異化傳輸(支持斷點續傳,數據同步)
rsync -av /backup/ -e ssh root@192.168.1.110:/bak #-a: archive歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,鏈接等,等於-rlptgoD rsync——remote sync。rsync是Linux系統下的文件同步和數據傳輸工具,它采用“rsync”算法,可以將一個客戶機和遠程文件服務器之間的文件同步,也可以在本地系統中將數據從一個分區備份到另一個分區上。如果rsync在備份過程中出現了數據傳輸中斷,恢復后可以繼續傳輸不一致的部分。rsync可以執行完整備份或增量備份。它的主要特點有: 1.可以鏡像保存整個目錄樹和文件系統; 2.可以很容易做到保持原來文件的權限、時間、軟硬鏈接;無須特殊權限即可安裝; 3.可以增量同步數據,文件傳輸效率高,因而同步時間短; 4.可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接; 5.支持匿名傳輸,以方便進行網站鏡象等; 6.加密傳輸數據,保證了數據的安全性;
3.管道傳輸(降低IO開銷)
gzip -c sda.img | ssh root@192.168.1.110 "gunzip -c - > /image/sda.img"
#對sda.img使用gzip壓縮,-c參數表示輸出到stdout,即通過管道傳送
#gunzip -c - 中的"-"表示接收從管道傳進的sdtin
4.nc傳輸(一種網絡的數據流重定向)
nc所做的就是在兩台電腦之間建立tcp或udp鏈接,並在兩個端口之間傳輸數據流,是一種網絡的數據流重定向
#使用dd結合nc命令網絡克隆磁盤分區 主機: dd if=/dev/vda | gzip -c | nc -l 50522 待恢復機: nc 192.168.215.63 50522 | gzip -dc | dd of=/dev/sda
#dd命令克隆/dev/vda磁盤,並使用gzip壓縮,把數據流重定向到本機50522端口,待恢復機上使用nc連接主機50522端口,就能接收主機50522端口的比特數據流,然后使用gzip解壓縮,並恢復到/dev/sda磁盤
#dd命令讀取的是磁盤扇區,所以不論磁盤文件系統,或者分區表,磁盤MBR信息,dd都能夠復制,可以使用bs,count參數控制要克隆的大小
#例如dd bs=512 count=1 if=/dev/vda of=mbr.img 只復制磁盤vda的第一個扇區512K字節數據(引導程序和分區表)
5.建立文件服務器
除了上面集中傳輸文件的方式之外,還可以通過簡歷文件服務器,然后通過網絡掛載的方式傳輸,這種適用於經常性的拷貝,下面是一個掛載ftp服務器的例子
掛載ftp服務器 yum install curlftpfs mkdir /data/ftp curlftpfs username:password@ftp.yourdomain.com /data/ftp