從Linux伺服器下載資料夾或檔案到本地,本地上傳檔案或資料夾至伺服器
阿新 • • 發佈:2020-12-26
要實現這些功能,需要使用到 scp
Linux scp 命令用於 Linux 之間複製檔案和目錄。
scp 是 secure copy 的縮寫, scp 是 linux 系統下基於 ssh 登陸進行安全的遠端檔案拷貝命令。
一. 從本地複製到遠端伺服器
- 複製檔案至遠端伺服器
scp local_file [email protected]_ip:remote_folder
用例如下
1.保持檔名不變 ; 2.重新命名檔案
1. scp /home/my_work/hello_word.php [email protected].202. 151.8:/home/project
2. scp /home/my_work/hello_word.php [email protected].202.151.8:/home/project/hello_word_new_name.php
- 複製資料夾至遠端伺服器
scp -r local_folder [email protected]_ip:remote_folder
用例如下
下面命令將本地 my_work 目錄複製到遠端 project 目錄下。
scp -r /home/my_work/ [email protected].202.151.8:/home/project/
二. 從遠端伺服器複製到本地
從遠端複製到本地,只要將從本地複製到遠端的命令的後2個引數調換順序即可,如下例項
1. scp [email protected].202.151.8:/home/project/hello_word.php /home/my_work/
2. scp -r [email protected].202.151.8:/home/project/ /home/my_work/
三.說明
1.如果遠端伺服器防火牆有為scp命令設定了指定的埠,我們需要使用 -P 引數來設定命令的埠號,命令格式如下:
#scp 命令使用埠號 4588
scp -P 4588 [email protected] .202.151.8:/home/project/hello_word.php /home/my_work/
2.使用scp命令要確保使用的使用者具有可讀取遠端伺服器相應檔案的許可權,否則scp命令是無法起作用的。
四. SCP引數說明
- -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)的選項。