scp和rsync 均可實現(xiàn)文件的復制,但相比較,scp占用系統(tǒng)資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用。可根據(jù)需要這倆選其一實現(xiàn)文件復制。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站制作、成都網(wǎng)站設(shè)計、石臺網(wǎng)絡(luò)推廣、小程序開發(fā)、石臺網(wǎng)絡(luò)營銷、石臺企業(yè)策劃、石臺品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供石臺建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
scp 是secure copy的縮寫,scp是Linux系統(tǒng)下基于ssh登錄進行安全的遠程文件拷貝命令。
可以實現(xiàn)本地文件復制到遠程服務器,也可以將遠程文件復制到本地。
rsync 是remote sync的縮寫。使用rsync備份數(shù)據(jù)時,不會直接覆蓋以前的數(shù)據(jù)(如果數(shù)據(jù)已經(jīng)存在),而是先判斷已存在的數(shù)據(jù)和新數(shù)據(jù)的差異(默認規(guī)則是文件大小或修改時間有差異),只有數(shù)據(jù)不相同時才會把不相同的部分覆蓋。在僅作增量數(shù)據(jù)的copy時比scp靈活。
一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個冒號和雙冒號的區(qū)別 :使用rsync在遠程傳輸數(shù)據(jù)前,是需要進行登陸認證的,這個過程可使用ssh協(xié)議也可以使用rsync協(xié)議完成。單冒號(:)使用的是ssh協(xié)議;雙冒號(::)使用的是rsync協(xié)議。
默認情況下,rsync只確保源文件的所有內(nèi)容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,并且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在于源目錄的文件。
增量備份算是一個經(jīng)常使用的場景了。兩臺服務器之間進行文件定期備份,無需所有文件都copy一遍,僅復制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準目錄里面同步一份。以后每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在于該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。
--link-dest 參數(shù)用來指定同步時的基準目錄。
上面命令中, --link-dest 參數(shù)指定基準目錄 /compare/path ,然后源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,后面就都是增量備份了。
一般服務器之間復制文件都比較大,為防止誤操作,最好在后臺運行。但因為需要和遠程服務器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置于后臺。無論是scp還是rsync都可操作如下:
后臺和前臺任務的切換
scp不支持斷點續(xù)傳,掛起scp進程可能導致數(shù)據(jù)缺失。傾向于使用rsync。
如果有其他任務需要使用nohup后臺運行,但執(zhí)行時卻忘記了使用nohup,也可參照此方法進行設(shè)置。
參考:1. Linux之scp命令及后臺運行scp
轉(zhuǎn)自:
先說下常用的情況:
兩臺機器IP分別為:A.104.238.161.75,B.43.224.34.73。
在A服務器上操作,將B服務器上/home/lk/目錄下所有的文件全部復制到本地的/root目錄下,命令為:scp -r root@43.224.34.73:/home/lk /root。
具體過程為:
[root@XX ~]#scp-r root@43.224.34.73:/home/lk /root
root@43.224.34.73's password: k2.sql100%00.0KB/s00:00? ?
k.zip100%1760.2KB/s00:00? ?
.bash_history? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%320.0KB/s00:00? ?
.bash_logout? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%180.0KB/s00:00? ?
.bashrc? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%2310.2KB/s00:00? ?
k3.sql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%00.0KB/s00:00? ?
.bash_profile? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%1930.2KB/s00:00? ?
[root@XX ~]#ls
在A服務器上將/root/lk目錄下所有的文件傳輸?shù)紹的/home/lk/cpfile目錄下,命令為:scp -r /root/lk root@43.224.34.73:/home/lk/cpfile。
具體過稱為:
[root@XX lk]#scp-r /root/lk root@43.224.34.73:/home/lk/cpfile
root@43.224.34.73's password: k2.sql100%00.0KB/s00:00? ?
k3.sql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%00.0KB/s00:00? ?
.bash_profile? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%1930.2KB/s00:00? ?
.bash_logout? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%180.0KB/s00:00? ?
.bash_history? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%320.0KB/s00:00? ?
k.zip100%1760.2KB/s00:00? ?
.bashrc? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%2310.2KB/s00:00? ?
[root@XX lk]#
scp在夸機器復制的時候為了提高數(shù)據(jù)的安全性,使用了ssh連接和加密方式,如果機器之間配置了 ssh免密碼登錄 ,那在使用scp的時候密碼都不用輸入。
命令詳解:
scp是secure?copy的簡寫,用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的??赡軙晕⒂绊懸幌滤俣?。當你服務器硬盤變?yōu)橹蛔x?read?only?system時,用scp可以幫你把文件移出來。另外,scp還非常不占資源,不會提高多少系統(tǒng)負荷,在這一點上,rsync就遠遠不及它了。雖然?rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用。
1.命令格式:
scp?[參數(shù)]?[原路徑]?[目標路徑]
2.命令功能:
scp是?secure?copy的縮寫,?scp是linux系統(tǒng)下基于ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux服務器之間復制文件和目錄。
3.命令參數(shù):
-1??強制scp命令使用協(xié)議ssh1??
-2??強制scp命令使用協(xié)議ssh2??
-4??強制scp命令只使用IPv4尋址??
-6??強制scp命令只使用IPv6尋址??
-B??使用批處理模式(傳輸過程中不詢問傳輸口令或短語)??
-C??允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)??
-p?保留原文件的修改時間,訪問時間和訪問權(quán)限。??
-q??不顯示傳輸進度條。??
-r??遞歸復制整個目錄。??
-v?詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調(diào)試信息。這些信息用于調(diào)試連接,驗證和配置問題。???
-c?cipher??以cipher將數(shù)據(jù)傳輸進行加密,這個選項將直接傳遞給ssh。???
-F?ssh_config??指定一個替代的ssh配置文件,此參數(shù)直接傳遞給ssh。??
-i?identity_file??從指定文件中讀取傳輸時使用的密鑰文件,此參數(shù)直接傳遞給ssh。????
-l?limit??限定用戶所能使用的帶寬,以Kbit/s為單位。?????
-o?ssh_option??如果習慣于使用ssh_config(5)中的參數(shù)傳遞方式,???
-P?port??注意是大寫的P,?port是指定數(shù)據(jù)傳輸用到的端口號???
-S?program??指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
4.使用實例:
scp命令的實際應用概述:??
從本地服務器復制到遠程服務器:?
(1)?復制文件:??
命令格式:??
scp?local_file?remote_username@remote_ip:remote_folder??
或者??
scp?local_file?remote_username@remote_ip:remote_file??
或者??
scp?local_file?remote_ip:remote_folder??
或者??
scp?local_file?remote_ip:remote_file??
第1,2個指定了用戶名,命令執(zhí)行后需要輸入用戶密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名??
第3,4個沒有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名???
(2)?復制目錄:??
命令格式:??
scp?-r?local_folder?remote_username@remote_ip:remote_folder??
或者??
scp?-r?local_folder?remote_ip:remote_folder??
第1個指定了用戶名,命令執(zhí)行后需要輸入用戶密碼;??
第2個沒有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼;
一個是本地 , 一個是遠程。
cp 是普通的文件復制scp 是通過ssh 本機和其他電腦上的復制。
scp是secure copy,也是一個復制命令,是與ssh有關(guān)的。
scp user@ip:/dir/file file
或者:scp file user@ip:/dir/file
要輸入user在遠端用戶的密碼。
cp ,使用權(quán)限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或?qū)?shù)個檔案拷貝至另一目錄。
關(guān)于CP的具體使用辦法:
命令基本格式:?
cp [OPTIONS] SOURCE DEST --- 從源路徑copy文件到目的路徑?
cp [OPTIONS] SOURCE... DIRECTORY --- 將多個源文件copy到指定的目錄(多個源文件用空格分隔)
OPTIONS:
-a same as -dpR 盡可能將源文件狀態(tài)、權(quán)限等資料都照原裝予以復制,并且是遞歸copy;?
-r 表示遞歸copy,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;?
-f 表示force,若目的地已經(jīng)有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
關(guān)于SCP的具體使用辦法:
就是ftp,也就是其中一臺Linux安裝ftp Server,這樣可以在另外一臺機器使用ftp的client程序來進行文件的copy。
Linux scp 命令用于 Linux 之間復制文件和目錄。
scp 是 secure copy 的縮寫, scp 是 linux 系統(tǒng)下基于 ssh 登陸進行安全的遠程文件拷貝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。
使用 SCP 意味著它享有與 SSH 相同級別的數(shù)據(jù)加密,因此被認為是跨兩個遠程主機傳輸文件的安全方式。
2、scp的基本語法
本地-遠程
$ scp [option] /path/file user@server-ip:/path/directory
1
1
遠程-本地
$ scp [option] user@server-ip:/path/file/ path/directory
1
1
/path/file – 要復制的文件名及路徑。
user@server-IP: – 這是遠程系統(tǒng)的用戶名和 IP 地址。注意 IP 地址后面加冒號。
/path/directory – 保存的路徑。
option常用選項:
-C - 這會在復制過程中壓縮文件或目錄。
-P - 如果默認 SSH 端口不是 22,則使用此選項指定 SSH 端口。注意大寫
-r - 此選項遞歸復制目錄及其內(nèi)容。
-p - 保留文件的訪問和修改時間。
3、將文件復制到遠程 Linux 服務器
將文件 file.tar.gz復制到遠程.
主機IP為192.168.43.137,用戶名為root。
[root@server1 ~]# scp file.tar.gz root@192.168.43.137:/home/place
1
1
將文件夾目錄 /home/filePath復制到遠程,使用**-r**選項。
[root@server1 ~]# scp -r /home/filePath root@192.168.43.137:/home
1
1
4、將文件從遠程系統(tǒng)復制到本地
將文件 file.tar.gz從遠程復制到本地
[root@server1 ~]# scp root@192.168.43.137:/root/file.tar.gz /root/
1
1
將文件夾目錄 /root/filePaht 從遠程復制到本地, 使用**-r**標志
[root@server1 ~]# scp -r root@192.168.43.137:/root/filePaht /root/
1
1
有關(guān)使用 scp 命令的更多選項,可以查看手冊,命令是:man scp
Linux SCP 命令是一種在兩個遠程節(jié)點之間傳輸文件的便捷且安全的方式,而無需擔心攻擊者窺探你的數(shù)據(jù)。