scp命令介紹

2021-12-25 生信洞
scp命令介紹

SCP (secure copy) 是通過SSH(Secure Shell protocol)安全加密的方式,允許你在兩個locations之間安全地複製文件或目錄。

使用scp命令,可以實現:

通過本地伺服器,實現遠程伺服器之間的文件或目錄複製

其基本語法為:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

[user@]SRC_HOST:]file1代表源文件或目錄,[user@]DEST_HOST:]file2代表目標文件或目錄。

其常用選項為:

-P:指定目標主機的埠號
-p:保留原文件的修改時間,訪問時間和訪問權限
-r:遞歸複製整個目錄
-q: quiet模式,不顯示文件複製過程中的進度、警告和診斷信息
-C:啟用壓縮。

scp 命令依賴 ssh 進行數據傳輸,因此它需要 ssh 密鑰或密碼才能在遠程系統上進行身份驗證。

冒號 (:) 是 scp 區分本地和遠程主機的方式。

為了能夠複製文件,必須至少具有源文件的讀取權限和目標目錄的寫入權限。

注意: 當目標伺服器上已有相同的文件或目錄,scp 將在沒有警告的情況下覆蓋其文件。

示例複製本地伺服器上的文件到遠程伺服器

從本地伺服器複製文件到遠程伺服器上的某個目錄下:

# 複製本地伺服器上的file.txt到遠程伺服器的/remote/directory目錄下
>cmd scp file.txt remote_username@10.10.0.2:/remote/directory
# 輸出
remote_username@10.10.0.2's password:
file.txt 100% 0 0.0KB/s 00:00
Copy

其中file.txt為我們要複製的源文件,remote_username為我們將要把源文件複製到的遠程伺服器上的用戶名,10.10.0.2為遠程伺服器的IP位址。/remote/directory為要把源文件複製到的目標伺服器上的目錄,如果不指定目錄,將會直接把文件複製到目標用戶的家目錄下;如果指定目錄和文件名,將會把源文件複製到目標伺服器指定的目錄,並把源文件名修改為指定的文件名,如下:

# 複製本地伺服器上的file.txt到遠程伺服器的/remote/directory目錄下,並命名為newfilename.txt
>cmd scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

如果遠程伺服器的埠不為默認的22時,需要指定埠號:

# 指定埠號為1029
>cmd scp -P 1029 file.txt remote_username@10.10.0.2:/remote/directory

當複製整個文件夾時,需要加-r選項:

# 將/local/directory目錄及目錄下的所有子目錄和文件複製到目標伺服器
>cmd scp -r /local/directory remote_username@10.10.0.2:/remote/directory
# 當文件非常大時,我們可以使用-C選項,啟用壓縮模式,來減少時間
>cmd scp -C -r /local/directory remote_username@10.10.0.2:/remote/directory
# 如果我們不想看到提示信息,可以使用-q選項,啟用安靜模式
>cmd scp -C -q -r /local/directory remote_username@10.10.0.2:/remote/directory
# 如果還想保留原文件的修改時間,訪問時間和訪問權限,可以添加-p選項
>cmd scp -C -q -p -r /local/directory remote_username@10.10.0.2:/remote/directory

複製遠程伺服器上的文件到本地伺服器

和複製本地伺服器上的文件到遠程伺服器類似,只是把源文件/目錄和目標文件/目錄的位置調換了。

# 從遠程伺服器複製/remote/file.txt到本地伺服器的/local/directory
>cmd scp remote_username@10.10.0.2:/remote/file.txt /local/directory

通過本地伺服器,實現遠程伺服器之間的文件或目錄複製

與 rsync 不同,使用 scp 命令,我們無需登錄其中一臺伺服器即可將文件從一臺遠程主機傳輸到另一臺遠程主機。

# 把遠程伺服器host1.com上user1下的/files/file.txt文件複製到遠程伺服器host2.com上user2下的/dir目錄下
>cmd scp user1@host1.com:/files/file.txt user2@host2.com:/dir

應用實例

當我們想在兩個普通用戶之間移動文件,如果使用簡單的cp/mv命令,會出現一種我們不希望看到的情況——當把user1的file1.txt移動到user2的home下時,這個文件的擁有者還是user1,即默認情況下,user2隻有讀權限,沒有寫權限(自然也沒有移動權限)。即使user1通過修改該文件的文件權限,讓user2可寫,移動到user2的home目錄下file1.txt文件的擁有者還是user1,而且非得root才能改成user2。

這種情況下,我們當然有很多解決辦法,例如,先用user1用戶登錄,把文件copy到系統臨時目錄/tmp,然後切換到user2用戶,再從系統臨時目錄/tmp把文件copy到user2的home目錄:

# 登錄user1用戶
>cmd
cp file1.txt /tmp/
su - user2
cp /tmp/file1.txt ~/
exit
rm /tmp/file1.txt

這個辦法有點曲折,弊端也很明顯,文件需要複製兩次,花兩倍的時間。

而如果我們使用scp命令,只需要一行命令即可:

# 登錄user2用戶,輸入user1用戶密碼,開始文件傳輸
scp user1@localhost:/home/user1/file1.txt ./
# 或登錄user1用戶,輸入user2用戶密碼,開始文件傳輸
scp file1.txt bar@localhost:/home/user2/

如果要複製的不是文件,而是整個目錄(例如dir1),則添加-r選項即可:

# 登錄user2用戶,輸入user1用戶密碼,開始文件傳輸
scp -r user1@localhost:/home/user1/dir1 ./
# 或登錄user1用戶,輸入user2用戶密碼,開始文件傳輸
scp -r dir1 bar@localhost:/home/user2/

Reference

1.https://www.jb51.net/article/91394.htm

2.https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/

3.https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/

相關焦點

  • Linux下scp命令使用教程
    scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,scp傳輸是加密的,可能會稍微影響一下速度其佔用的系統資源非常小。非常適合遠程文件的拷貝。本篇我們就詳細介紹下scp的用法。
  • 在linux中傳輸文件文件夾的10個scp命令
    scp 命令的基本語法下面的命令將讀作 copy source_file_name進入destination_folder在destination_host使用username account。> scp source_file_name username@destination_host:destination_folder裡面有很多參數scp你可以使用的命令。以下是可能在日常使用中使用的參數。使用-v參數提供 scp 進程的詳細信息基礎的scp不帶參數的命令將在後臺複製文件。
  • scp 用戶的 rsync 遷移指南 | Linux 中國
    在 SSH 8.0 預發布公告中,OpenSSH 項目表示,他們認為 scp 協議已經過時,不靈活,而且不容易修復,然後他們繼而推薦使用 sftp 或 rsync 來進行文件傳輸。然而,很多用戶都是從小用著 scp 命令長大的,所以對 rsync 並不熟悉。此外,rsync 可以做的事情也遠不止複製文件,這可能會給菜鳥們留下複雜和難以掌握的印象。
  • 使用SCP或Rsync實現Linux主機之間文件、目錄的複製
    本文介紹SCP和Rsync這兩種實現Linux主機間的數據拷貝工具。下面介紹它們的簡單使用方法。SCP一般情況下Linux伺服器都有scp命令,如果沒有,可通過如下方式安裝:yum -y install openssh-clients # centosapt-get install openssh-client
  • Liunx高級命令
    1、chmod命令的介紹chmod修改文件權限有兩種方式:2、chmod字母法的使用角色說明:角色說明uuser,表示該文件的所有者ggroup,表示用戶組oother,表示其他用戶aall,表示所用戶3、權限設置說明:4、權限說明:獲取管理員權限的相關命令1、sudo命令的使用命令說明sudo
  • Linux 介紹與工具使用(八:遠程連接與文件傳輸介紹-SSH與SCP)
    訪問域名我們可以使用ping 命令來嘗試訪問網址:$ ping www.baidu.comPING www.a.shifen.com (36.152.44.95): 56 data bytes64 bytes from 36.152.44.95: icmp_seq=
  • Linux基礎命令:作為開發人員,你還不知道嘛?
    2. scpscp表示安全複製(secure copy),可以在網際網路的主機間複製文件。使用scp的一種方法是將文件從個人計算機複製到遠程伺服器,反之亦然。scp與安全外殼協議(SSH)相互協作。這個命令非常簡單,工作原理與cp命令類似。
  • SCP是什麼?火爆的SCP基金會幹什麼的?
    scp是違反自然法則的各種超自然現象、物品或生物。由於它是違反自然法則的情況,通常是對人類有威脅的。那麼為了避開這些東西對人類的威脅,就誕生了一個組織,scp基金會。這個基金會的工作就是收容這些會產生威脅的東西,把他們控制起來,不讓它們產生危害。這就像是《MIB》那個電影裡的黑衣人抓外星人,把他們控制起來。這是一個傳說中的組織,究竟是否存在沒人知道。
  • 今天給大家聊聊scp基金會
    scp基金會不知何時火爆全網,我們控制,收容,保護。便是基金會名字的由來scp基金會是專門調查世界各處出現的超自然現象,並在發現後將其本源收容控制保護起來。這個組織不受任何人或者組織所掌控,在其掌握最高權力的便是o5,他們掌握了基金會的所有秘密。
  • scp基金會是什麼 花裡胡哨應有盡有
    scp基金會是什麼 花裡胡哨應有盡有時間:2019-10-21 15:58   來源:安軟市場   責任編輯:凌君 川北在線核心提示:原標題:scp基金會是什麼 花裡胡哨應有盡有 scp基金會介入調查是什麼梗,今天小編發現抖音出現了許多新梗,花裡胡哨應有盡有,這次要給大家介紹的抖音熱梗是SCP基金會介入調查,不少網友都不明白這是什麼意思
  • 關於SCP基金會簡單介紹
    scp基金會大家可以到官網查看spc基金會的世界。scp基金會主題是控制,收容和保護。
  • scp基金會是什麼 抖音評論scp基金會介入調查是什麼梗和意思
    scp基金會介入調查是什麼梗,今天小編發現抖音出現了許多新梗,花裡胡哨應有盡有,這次要給大家介紹的抖音熱梗是SCP基金會介入調查,不少網友都不明白這是什麼意思!接下來就和小編一起深入了解一下吧!
  • scp基金會介紹
    故事主體圍繞一個名為「SCP基金會」的組織,其本身運作不受任何國家組織幹涉管轄,目標為收容世界上的異常現象、事件、個體等等,並統稱為「收容物」(即scp)。每個收容物都會有一個對應的編號(如SCP–XXXX)。
  • Linux常用命令
    1.常用命令命令英文作用lslist查看當前文件夾下的內容pwdprint work directory查看當前所在文件夾
  • 那些又當爹又當媽時攢下來的linux常用命令
    root轉到其他用戶不需要密碼4、scp 從其它伺服器複製 scp r xxx@222.85.126.239:/home/xxx/codes/wt/WtHnV4 /home/xxx/codes/wt/WtHnV4 注釋:scp -r xxx@222.85.126.239:/home/xxx/codes /home/xxx不用帶文件夾的名稱 (複製239的codes目錄下的文件。
  • 輕鬆掌握Linux chgrp與chown命令
    輕鬆掌握Linux chgrp與chown命令 電腦中必不可少的就是作業系統。而Linux的發展非常迅速,有趕超微軟的趨勢。這裡介紹Linux的知識,讓你學好應用Linux系統。今天一講Linux chgrp與chown,希望你記住Linux chgrp與chown。
  • 《scp人物誌》scp-049 中世紀的無盡輪迴(中篇)
    我們很抱歉發生這種情況,確實是相當意外的情況,對於scp-049,我們確實是疏忽了,在你回去的路上配槍的是我們的scp戰鬥人員,這個你不用擔心」電話的那頭scp基金會分會的工作人員聲音很溫柔「我好多了,其實沒必要道歉,也怪我在你們沒準備好的時候就忙著趕緊想去一探究竟」桌上的牛排滋滋的冒著油,我用筷子拿起一塊咬開,答道
  • scp基金會是真實存在的麼
    在現實中SCP基金會並非是一個秘密組織,而是一個全球性的同人接力寫作網站,是一個完全開放的寫作平臺,所有人都可以為scp基金會創作小說,但只有作品足夠新穎有趣,才可以被接納,在一定的框架下,各個作者們各自進行創作,然後以作品得到的接受度來決定它能否留存在網站上。
  • SCP系列故事-資料庫-你最後的SCP!
    ─────────────────────────────────────┐  只需在每個專有名詞     以及所有句子的開頭                             去使用一下大寫字母                          └──────────────────────────────────────┘'泥嚎是的' 不被識別為內部或外部命令
  • scppass計算功能介紹-【快速生成最大加速度-靜應力曲線實例】
    利用上述公式,藉助scppass軟體,筆者製作出了快速生成緩衝曲線的軟體,並利用interp1函數預測緩衝設計過程中產品加速度-時間曲線。細節不再贅述,交互式界面如下:《彈塑性泡沫一維、三維力學本構模型及軟體應用》《高彈泡沫有限元參數識別方法介紹-參數識別軟體運用》《包裝有限元軟體開發及進展》《包裝固體力學、