Linux scpコマンド

Linux scpコマンドは、Linux間でファイルとディレクトリをコピーするために使用されます。

scpはsecure copyの略語であり、scpはLinuxシステムでのsshログインに基づくセキュアリモートファイルコピーコマンドです。

scpは暗号化されており、rcpは暗号化されていません。また、scpはrcpの拡張バージョンです。

構文

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[[email protected]]host1:]file1 [...] [[[email protected]]host2:]file2

簡単な書き方:

scp [オプションのパラメータ] file_source file_target 

構成

  • -c

-cパラメータは、ファイルコピーデータ送信の暗号化アルゴリズムを指定するために使用されます。

$ scp -c blowfish some_file [email protected]:~

上記のコードは、暗号化アルゴリズムをblowfishとして指定しています。

  • -C

-Cパラメータは、送信中にファイルを圧縮するかどうかを示します。

$ scp -c blowfish -C local_file [email protected]:~
  • -F

-Fパラメータは、sshが使用するssh_configファイルを指定するために使用されます。

$ scp -F /home/pungki/proxy_ssh_config Label.pdf [email protected]:/root
  • -i

-iパラメータは、キーを指定するために使用されます。

$ scp -vCq -i private_key.pem ~/test.txt [email protected]:/some/path/test.txt
  • -l

-lパラメータは、送信データの帯域幅レートを制限するために使用されます。単位はKbit/secです。複数の人が共有する帯域幅の場合、このパラメータは、その他の人が使用できるように帯域幅の一部を確保できます。

$ scp -l 80 [email protected]erver:/home/yourusername/* .

上記のコードでは、scpコマンドが占める帯域幅は80Kビット/秒、つまり10Kバイト/秒に制限されています。

  • -p

-pパラメータは、変更時間(modification time)、アクセス時間(access time)、ファイルステータス(mode)などの元のファイル情報を保持するために使用されます。

$ scp -p ~/test.txt [email protected]:/some/path/test.txt
  • -P

-Pパラメータは、リモートホストのSSHポートを指定するために使用されます。 リモートホストがデフォルトのポート22を使用する場合は、それを指定する必要はありません。それ以外の場合は、コマンドで-Pパラメータを使用して指定する必要があります。

$ scp -P 2222 [email protected]:directory/SourceFile TargetFile
  • -q

-qパラメータは、コピーを表示するプログレスバーをオフにするために使用されます。

$ scp -q Label.pdf [email protected]:.
  • -r

-rパラメータは、ディレクトリーを再帰的にコピーするかどうかを示します。

  • -v

-vパラメータは、詳細な出力を表示するために使用されます。

$ scp -v ~/test.txt [email protected]:/root/help2356.txt

実例

ローカルからリモートにコピーします

コマンド形式:

scp local_file [email protected]_ip:remote_folder 

或は

scp local_file [email protected]_ip:remote_file 

或は

scp local_file remote_ip:remote_folder 

或は

scp local_file remote_ip:remote_file 
  • 1番目と2番目にはユーザー名が割り当てられ、コマンドの実行後にパスワードを入力する必要があります。1つ目はリモートディレクトリのみを指定し、ファイル名は変更されません。2つ目はファイル名を指定します。
  • 3番目と4番目にはユーザー名が指定されていません。コマンドの実行後にユーザー名とパスワードを入力する必要があります。3番目はリモートディレクトリのみを指定し、ファイル名は変更されません。4番目はファイル名です。

実例:

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music 
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3 
scp /home/space/music/1.mp3 www.ceodata.com:/home/root/others/music 
scp /home/space/music/1.mp3 www.ceodata.com:/home/root/others/music/001.mp3 

ディレクトリのコピーコマンド形式:

scp -r local_folder [email protected]_ip:remote_folder 

或は

scp -r local_folder remote_ip:remote_folder 
  • 最初のユーザー名が指定されており、コマンドの実行後にパスワードを入力する必要があります。
  • 2番目はユーザー名を指定せず、コマンドの実行後にユーザー名とパスワードを入力する必要があります。

実例:

scp -r /home/space/music/ [email protected]:/home/root/others/ 
scp -r /home/space/music/ www.ceodata.com:/home/root/others/ 

上記のコマンドは、ローカルのmusicディレクトリをリモートのothersディレクトリにコピーします。

リモートからローカルにコピーします

リモートからローカルにコピーするには、次の例に示すように、ローカルからリモートにコピーされたコマンドの最後の2つのパラメータの順序を切り替えるだけです。

実例:

scp [email protected]:/home/root/others/music /home/space/music/1.mp3 
scp -r www.ceodata.com:/home/root/others/ /home/space/music/

説明

1.リモートサーバーファイアウォールがscpコマンドに指定されたポートを設定している場合、-Pパラメータを使用してコマンドのポート番号を設定する必要があります。コマンドの形式は次のとおりです。

#scpコマンドはポート番号4588を使用する
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

2. scpコマンドを使用して、ユーザーがリモートサーバーの対応するファイルを読み取る権限を持っていることを確認します。そうしないと、scpコマンドが機能しません。

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です