Linux scp命令


scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令,是 cp 命令的加強版。

常見命令

基本用法

          scp [可選參數] 源文件/目錄 目標文件/目錄

     常用的可選參數

  • -P 大寫的,指定端口號
  • -r 遞歸復制整個目錄
  • -v 顯示所有 debug 信息
  • -q 不顯示傳輸進度
  • -C 大寫的,啟用壓縮
  • -4 使用 IPv4 地址
  • -6 使用 IPv6 地址

本地復制到遠程

scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder 
  • 第1個指定了用戶名,命令執行后需要再輸入密碼;
  • 第2個沒有指定用戶名,命令執行后需要輸入用戶名和密碼;

例如:

復制文件

scp  /root/test.txt  root@192.168.1.10:/root/

將 /root/test.txt 拷貝到 192.168.1.10 的 /root/ 目錄下,文件名還是 text.txt,使用 root 用戶,此時會提示輸入遠程 root 用戶的密碼。

復制文件並重命名

scp  /root/test.txt  root@192.168.1.10:/root/test1.txt

將 /root/test.txt 拷貝到 192.168.1.10 的 /root/ 目錄下,文件名還是 text1.txt,使用 root 用戶,此時會提示輸入遠程 root 用戶的密碼。

復制整個目錄

scp  -r  /root/test/  root@192.168.1.10:/root/

將整個目錄 /root/test/ 復制到 192.168.1.10 的 /root/ 下,即遞歸的復制,使用 root 用戶,此時會提示輸入遠程 root 用戶的密碼。

遠程復制到本地

遠程復制到本地 與 從本地復制到遠程命令類似,不同的是 遠程文件作為源文件在前,本地文件作為目標文件在后。

scp root@192.168.1.10:/root/test.txt /root/test.txt

避免每次都輸入遠程密碼

方法一:

scp 默認使用 ssh, 每次傳輸都需要輸入遠程用戶的密碼,十分麻煩。但是如果兩台機器之間建立了信任關系后,則不需要輸入密碼,如下

首先在本機上生成配對密鑰

ssh-keygen -t rsa

然后將本機上的公鑰文件拷貝到遠程機器,並命名為 authorized_keys

scp /root.ssh/id_rsa.pub root@192.168.1.10:/root/.ssh/authorized_keys

以后再傳文件就不用輸入密碼了,包括使用 ssh, sftp 時,都不用輸入密碼了。

方法二:

安裝sshpass,scp結合sshpass可帶上密碼傳輸文件

sshpass -p mima scp root@149.xx.xx.xx:/var/log/tpcc_mysql.rtx  a.rtx

這個方法有個缺點,還是需要每次都輸且會暴露明文密碼

 注:IP不好記,也可以直接使用綁定的域名

 

參考鏈接

 1. https://buzheng.org/2015/linux-scp-notes.html

 2. https://blog.csdn.net/u012062455/article/details/78341540

 3. 阿里雲幫助中心  https://help.aliyun.com/knowledge_detail/42523.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM