在linux 下scp 命令主要用來在不同主機之間做數據的安全拷貝的。scp 命令可以將文件從本地的計算機中拷貝到遠程的主機中,或者從遠程計算機中拷貝文件到本地主機,scp命令使用的安全加密的協議,所以在遠程拷貝數據的時候會比較安全,不會被黑客截取。
這個命令在日常的工作中經常會被用到,尤其是在多主機的集群環境中或者在cloud 環境里,比如當你想配置hadoop大數據環境或者配置openstack 多節點環境的時候,都會用用到scp命令,用來配置節點間無密碼登陸。
本文將會講述在linux系統中如何來使用linux 的scp命令,並演示如何在主機之間安全的拷貝數據文件。
linux scp 命令的使用格式如下:
1 |
scp [選項] <源文件路徑> <目標文件路徑> |
或者:
1 |
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] |
scp 使用實例
在使用scp命令的時候需要注意,本地主機和遠程主機必須能夠相互訪問,你需要知道遠程主機的訪問用戶名和密碼。
1#從遠程服務器中下載數據文件到本地主機
如果你想從遠程主機host1中的/tmp/目錄下拷貝test1 文件到本地主機的/tmp目錄,那么可以在本地主機的命令行下面
輸入命令:
1 |
scp root@host1:/tmp/test1 /tmp |
#2 從遠程服務器中拷貝目錄文件到本地主機下面
當你從遠程主機中拷貝一個目錄的時候,你需要給scp命令傳入一個“-r“ 選項,這樣scp命令就會將遠程主機下面的整個目錄的文件都拷貝的本地主機下。
輸入下面的命令:
1 |
scp -r root@hots1:/tmp /tmp |
這個命令就會把host1主機下的tmp目錄拷貝到本地主機的/tmp目錄下
#3 將本地主機的文件拷貝到遠程服務器上
如果要將本地主機的 /tmp目錄下的test1文件拷貝到遠程主機的/tmp目錄下,可以在本地主機輸入下面的命令:
1 |
scp /tmp/test1 root@host1:/tmp |
這樣test1文件就會被拷貝到遠程服務器上了。
#4將本地主機下的目錄上傳到遠程服務器
這個和剛才第二步的命令類似,就是需要傳”-r” 參數給linux scp 命令,輸入下面的 scp 命令:
1 |
scp -r /tmp root@hots1:/tmp |
上面的命令會把本地主機的/tmp目錄上傳到遠程主機host1的/tmp目錄下。