一、scp
scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的,它使用ssh安全協議傳輸數據。
scp系統開消小不占資源,不會提高多少系統負荷。雖然 rsync只傳送修改的部分。
1.命令格式:
scp [參數] [原路徑] [目標路徑]
1)復制文件:
scp 本地文件名 遠端用戶名@遠端主機IP:新文件名 scp /test.txt root@172.16.70.71:/home/newtest.txt scp local_file remote_username@remote_ip:remote_file scp local_file remote_ip:remote_folder scp local_file remote_ip:remote_file 指定了用戶名的,只需輸入密碼。沒有指定的,會指示輸入用戶和密碼
2)復制目錄:(復制目錄要參數-r)
scp -r local_folder remote_username@remote_ip:remote_folder scp -rp /data root@172.16.70.71:/home #-r 遞歸復制整個目錄,-p保留原文件的修改時間,訪問時間和訪問權限
3)從遠程服務器復制到本地服務器:
從遠程復制到本地,只要將從本地復制到遠程的命令后面2個參數互換順序就行了。
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
4)scp默認是22端口,如果改變端口要用大寫的-P參數
scp -P 7777 -rp /data root@172.16.70.71:/my/backup/
2.命令參數:
-1 強制scp命令使用協議ssh1
-2 強制scp命令使用協議ssh2
-4 強制scp命令只使用IPv4尋址
-6 強制scp命令只使用IPv6尋址
-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p 保留原文件的修改時間,訪問時間和訪問權限。
-q 不顯示傳輸進度條。
-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)的選項。
二、rsync
rsync (remote synchronize)顧名思意就知道它是一款實現遠程同步功能的軟件,
它在同步文件的同時,可以保持原來文件的權限、時間、軟硬鏈接等附加信息。
rsync是一個數據鏡像及備份工具,具有可使本地和遠程兩台主機的文件,目錄之間,快速同步鏡像,遠程數據備份等功能。在同步過程中,rsync是根據自己獨特的算法,只同步有變化的文件,甚至在一個文件里只同步有變化的部分,所以可以實現快速的同步數據的功能。
1. 命令格式
rsync [OPTION] SRC DEST
拷貝本地文件,SRC源、DES目的。如:
rsync -avz /data /backup
rsync [OPTION] SRC [USER@]host:DEST
使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。如:rsync -avz *.c 172.16.70.71:/tmp
rsync [OPTION] [USER@]HOST:SRC DEST
使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。如:rsync -avz root@172.16.70.71:/tmp /data
rsync [OPTION] [USER@]HOST::SRC DEST
從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。如:rsync -avzP root@172.16.70.71::www /databack
rsync [OPTION] SRC [USER@]HOST::DEST
從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟動該模式。如:rsync -avzP /databack root@172.16.70.71::www
rsync [OPTION] rsync://[USER@]HOST[:PORT]/SRC [DEST]
這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。如:rsync -v rsync://root@192.168.78.192:8888/www /databack
2. rsync命令同步參數:
一般最常用的選項組合:-avzP 來進行傳輸,
rsync的同步參數選項:
-a :歸檔模式,表示以遞歸模式傳輸文件,並保持文件所有屬性相當於-rtopgdl
-v :詳細模式輸出,傳輸時的進度等信息
-z :傳輸時進行壓縮以提高效率—compress-level=num可按級別壓縮
-r :對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸。
-t :保持文件的時間信息—time
-o :保持文件屬主信息owner
-p :保持文件權限
-g :保持文件的屬組信息
-P :--progress 顯示同步的過程及傳輸時的進度等信息
-e :使用的信道協議,指定替代rsh的shell程序。例如:ssh
-D :保持設備文件信息
-l :--links 保留軟連接
--progress :顯示備份過程
--delete :刪除那些DST中SRC沒有的文件
--exclude=PATTERN 指定排除不需要傳輸的文件模式
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件)
-b, --backup 創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。
-suffix=SUFFIX 定義備份文件前綴
-stats 給出某些文件的傳輸狀態
-R, --relative 使用相對路徑信息 如:rsync foo/bar/foo.c remote:/tmp/ 則在/tmp目錄下創建foo.c文件,而如果使用-R參數:rsync -R foo/bar/foo.c remote:/tmp/ 則會創建文件/tmp/foo/bar/foo.c,也就是會保持完全路徑信息。
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
--port=PORT 指定其他的rsync服務端口
*rsync服務器部署參見另外的文章
三、補充cp
cp(copy)命令
功能說明:復制文件或目錄。
語 法:cp [-abdfilpPrRsuvx][-S <備份字尾字符串>][-V <備份方式>][--help][--spares=<使用時機>][--version][源文件或目錄][目標文件或目錄] [目的目錄]
補充說明:cp指令用在復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,而最后的目的地並非是一個已存在的目錄,則會出現錯誤信息。
參 數:
-a或--archive 此參數的效果和同時指定"-dpR"參數相同。
-b或--backup 刪除,覆蓋目標文件之前的備份,備份文件會在字尾加上一個備份字符串。
-d或--no-dereference 當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄。
-f或--force 強行復制文件或目錄,不論目標文件或目錄是否已存在。
-i或--interactive 覆蓋既有文件之前先詢問用戶。
-l或--link 對源文件建立硬連接,而非復制文件。
-p或--preserve 保留源文件或目錄的屬性。
-P或--parents 保留源文件或目錄的路徑。
-r 遞歸處理,將指定目錄下的文件與子目錄一並處理。
-R或--recursive 遞歸處理,將指定目錄下的所有文件與子目錄一並處理。
-s或--symbolic-link 對源文件建立符號連接,而非復制文件。
-S<備份字尾字符串>或--suffix=<備份字尾字符串> 用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的備份字尾字符串是符號"~"。
-u或--update 使用這項參數后只會在源文件的更改時間較目標文件更新時或是 名稱相互對應的目標文件並不存在,才復制文件。
-v或--verbose 顯示指令執行過程。
-V<備份方式>或--version-control=<備份方式> 用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這字符串不僅可用"-S"參數變更,當使用"-V"參數指定不同備份方式時,也會產生不同字尾的備份字串。
-x或--one-file-system 復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不予復制。
--help 在線幫助。
--sparse=<使用時機> 設置保存稀疏文件的時機。
--version 顯示版本信息。
遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
來源:https://blog.csdn.net/openbox2008/java/article/details/80524214