簡單說明
遠程拷數據在工作中是經常使用到的場景,其中有的傳輸是校驗數據的有的傳輸不校驗數據,不校驗數據的雖然速度快很多,但是容易出錯,特別是在拷貝上T的大文件時就經常數據不一致,所以一般在做數據的過程中使用校驗數據的方式比較靠譜;
工具介紹
1、scp
scp是校驗數據的傳輸格式,如果沒有信任關係就需要用戶名密碼,常見的幾個用法
本地傳到遠程
scp user@pass /etc/lilo.conf [email protected]:/home/k
遠程傳到本地
scp user@pass [email protected]:/etc/lilo.conf ./
常用參數:
-r 拷貝目錄
-l 限速
-C 強行壓縮
-B 選擇批處理模式(防止輸入密碼)
-q 把進度參數關掉
2、rsync
rsync拷貝文件只是他的一個小應用,rsync功能 遠不止於此,比如有這樣一個需求,本地mysql會實時產生二進制文件,但是我還有若干服務器需要分析mysql的二進制文件,這可以用rsync來做實時更新,可以節約大量帶寬;可以使用ssh方式來傳輸文件,這樣其保密性也非常好,中間也會做文件校驗,不容易出錯,可以配置允許哪些IP可以訪問,哪些IP不可以訪問hosts allow = 192.168.100.90 #哪些電腦可以訪問rsync服務,hosts deny = 192.168.100.0/24 #哪些電腦不可以訪問rsync服務,rsync也可以指定配置文件,如果信任關係需要使用密碼纔可以使用;
常見參數
v詳細提示
a以archive模式操作,複製目錄、符號連接
z壓縮
u只進行更新,防止本地新文件被重寫,注意兩者機器的時鐘的同時
--bwlimit限速傳輸
路徑地址包含單個冒號":"分隔符時啓動該模式。
3、NetCat簡稱nc
從server1拷貝文件到server2上。需要先在server2上,用nc激活監聽,server2上運行:
nc -l -p 8181 |tar xvf -
tar 是在傳輸過程打包
在server 1上運行
tar cvf - dir| nc -w 1 server2IP 1234
上面的方式就是將dir打包從server1傳到server 2
常見參數
-i secs 延時的間隔
-l 監聽模式,用於入站連接
-n 指定數字的IP地址,不能用hostname
-o file 記錄16進制的傳輸
-p port 本地端口號
-r 任意指定本地及遠程端口
-s addr 本地源地址
-u UDP模式
-v 詳細輸出——用兩個-v可得到更詳細的內容
-w secs timeout的時間
4 wget
這個工具在傳輸大文件是基本不用,因爲wget在傳輸過程中不校驗數據,速度雖然相當給力但是數據容易出錯,傳輸小文件的出錯概略比較小,但是傳輸大文件出錯概略比較大,在做數據的過程不建議用wget;
參考文獻
http://www.ha97.com/4169.html
http://blog.csdn.net/jackdai/article/details/460460
http://www.huanxiangwu.com/477/linux-nc-netcat