本文記錄linux系統中文件傳輸的多種方式,留做備忘。linux中文件傳輸的方式有ftp,scp,rsync,rz,sz等,但各個工具的功能又有所區別;linux
scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它相似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,並且scp傳輸是加密的。可能會稍微影響一下速度。當你服務器硬盤變爲只讀 read only system時,用scp能夠幫你把文件移出來。另外,scp還很是不佔資源,不會提升多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然 rsync比scp會快一點,但當小文件衆多的狀況下,rsync會致使硬盤I/O很是高,而scp基本不影響系統正常使用。scp在誇機器複製的時候爲了提升數據的安全性,使用了ssh鏈接和加密方式,若是機器之間配置了ssh免密碼登陸,那在使用scp的時候密碼都不用輸入。shell
scp的安裝:文件傳輸的兩端機器都須要安裝windows
[root@yufu ~]# yum install openssh-clients -y
命令格式:scp [參數] [本地主機文件路徑] [遠程主機路徑]安全
參數選項: 服務器
-1 強制scp命令使用協議ssh1 app
-2 強制scp命令使用協議ssh2 ssh
-4 強制scp命令只使用IPv4尋址 ide
-6 強制scp命令只使用IPv6尋址 工具
-B 使用批處理模式(傳輸過程當中不詢問傳輸口令或短語) 學習
-C 容許壓縮。(將-C標誌傳遞給ssh,從而打開壓縮功能)
-p 保留原文件的修改時間,訪問時間和訪問權限。 (建議使用,傳輸時保留屬性時間信息,不然會致使時間發生改變沒法進行增量傳輸)
-q 不顯示傳輸進度條。 (很適合crontab任務計劃中使用)
-r 遞歸複製整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試鏈接,驗證和配置問題。
-c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
-i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
-l limit 限定用戶所能使用的帶寬,以Kbit/s爲單位。
-o ssh_option 若是習慣於使用ssh_config(5)中的參數傳遞方式,
-P port 注意是大寫的P, port是指定數據傳輸用到的端口號
-S program 指定加密傳輸時所使用的程序。此程序必須可以理解ssh(1)的選項。
scp的使用:將本地A主機文件複製到B主機: A:192.168.214.190 B:192.168.214.187
[root@localhost tmp]#scp -p ./files/yum.log 192.168.214.187:/tmp/demo/ The authenticity of host '192.168.214.187 (192.168.214.187)' can't be established. RSA key fingerprint is SHA256:BwJdXsDA6F5976fKx1cSxkGJ9/uYYI4zVJ2rd+/Cvj0. RSA key fingerprint is MD5:85:87:8b:17:d2:79:c7:91:11:46:78:b3:4d:9d:dd:5a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.214.187' (RSA) to the list of known hosts. root@192.168.214.187's password: yum.log 100% 0 0.0KB/s 00:00
檢查B主機文件:
[root@yufu demo]# ls f3.log yum.log [root@yufu demo]# ll 總用量 0 -rw-r--r--. 1 root root 0 3月 31 22:38 f3.log -rw-------. 1 root root 0 3月 31 22:36 yum.log
將遠程主機複製到本地
[root@localhost files]#scp -p 192.168.214.187:/tmp/demo/f3.log /tmp/files/ root@192.168.214.187's password: f3.log 100% 0 0.0KB/s 00:00 [root@localhost files]#ls f3.log ff.txt yum.log
複製目錄
[root@localhost tmp]#scp -rp ./files/ 192.168.214.187:/tmp/demo root@192.168.214.187's password: f3.log 100% 0 0.0KB/s 00:00 yum.log 100% 0 0.0KB/s 00:00 ff.txt 100% 5 7.3KB/s 00:00 [root@localhost tmp]#
檢查遠程主機目錄
[root@yufu demo]# tree . └── files ├── app ├── f3.log ├── ff.txt └── yum.log 2 directories, 3 files
rz sz指令能夠實現linux和windows之間的文件傳輸,但要求在windows客戶端要安裝Xshell或SecureCRT遠程鏈接工具。
rz指令和sz指令是一對上傳與下載的指令。它們的軟件包名爲lrzsz。
rz sz指令使用很簡單,執行rz 指令,遠程鏈接工具會彈出windows文件選擇窗口,只要選擇要上傳的文件便可
工具的安裝:
yum install lrzsz -y
文件上傳:
文件下載:
rsync是能夠實現增量備份的工具。配合任務計劃,rsync能實現定時或間隔同步,配合inotify或sersync,能夠實現觸發式的實時同步。rsync能夠實現scp的遠程拷貝,cp的本地拷貝、rm刪除和"ls -l"顯示文件列表等功能。關於rsync的使用將單獨寫文章學習介紹。