scp就是secure copy,一個在linux下用來進行遠程拷貝檔案的命令。
有時我們需要獲得 遠程伺服器上的某個檔案,該伺服器既沒有配置ftp伺服器,也沒有做共用,無法通過常規途徑獲得檔案時,只需要通過簡單的scp命令便可達到目的。
一、 將本機檔案複製到遠程伺服器上
#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地檔案的絕對路徑
news.txt 要複製到伺服器上的本地檔案
root 通過root使用者登入到遠程伺服器(也可以使用其他擁有同等許可權的使用者)
192.168.6.129 遠程伺服器的ip地址(也可以使用網域名稱或機器名)
/etc/squid 將本地檔案複製到位於遠程伺服器上的路徑
通過root使用者登入遠程伺服器,輸入yes表示同意建立ssh串連
按提示輸入root使用者的密碼
建立串連後開始傳輸檔案,顯示百分比、實際時間和傳送速度等資訊
二、 將遠程伺服器上的檔案複製到本機
#scp remote@www.abc.com:/usr/local/sin.sh /home/administrator
remote 通過remote使用者登入到遠程伺服器(也可以使用其他擁有同等許可權的使用者)
www.abc.com 遠程伺服器的網域名稱(當然也可以使用該伺服器ip地址)
/usr/local/sin.sh 欲複製到原生位於遠程伺服器上的檔案
/home/administrator 將遠程檔案複製到本地的絕對路徑
注意 兩點:
1.如果遠程伺服器防火牆有特殊限制,scp便要走特殊連接埠,具體用什麼連接埠視情況而定,命令格式如下:
#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所 使用的使用者是否具有可讀取遠程伺服器相應檔案的許可權。
註:
要確保遠端linux伺服器開啟了ssh服務,scp好像是ssh裡的一條命令
可以先試著用ssh登陸 ssh username@remoteserver
如果確認ssh可用, 輸入exit退出來
先來說檔案夾,例如我要從remoteserver的 /etc檔案夾考所有檔案到 本地的 /tmp/etc去
scp -r username@remoteserver:/etc /tmp/etc
再來說檔案夾,例如我要從remoteserver的 /etc/a.txt檔案考所有檔案到 本地的 /tmp/etc去也叫a.txt
scp username@remoteserver:/etc/a.txt /tmp/etc/a.txt
再說這個參數 -r,用到很多地方,如cp只能拷檔案而不是檔案夾, 但 cp -r就是全能了,什麼都能拷,檔案或檔案夾