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]
[[user@]host1:]file1 [...] [[user@]host2:]file2

簡単な書き方:

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

構成

  • -c

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

$ scp -c blowfish some_file your_username@remotehost.edu:~

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

  • -C

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

$ scp -c blowfish -C local_file your_username@remotehost.edu:~
  • -F

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

$ scp -F /home/pungki/proxy_ssh_config Label.pdf root@172.20.10.8:/root
  • -i

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

$ scp -vCq -i private_key.pem ~/test.txt root@192.168.1.3:/some/path/test.txt
  • -l

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

$ scp -l 80 yourusername@yourserver:/home/yourusername/* .

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

  • -p

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

$ scp -p ~/test.txt root@192.168.1.3:/some/path/test.txt
  • -P

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

$ scp -P 2222 user@host:directory/SourceFile TargetFile
  • -q

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

$ scp -q Label.pdf mrarianto@202.x.x.x:.
  • -r

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

  • -v

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

$ scp -v ~/test.txt root@192.168.1.3:/root/help2356.txt

実例

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

コマンド形式:

scp local_file remote_username@remote_ip:remote_folder 

或は

scp local_file remote_username@remote_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 root@www.ceodata.com:/home/root/others/music 
scp /home/space/music/1.mp3 root@www.ceodata.com:/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 remote_username@remote_ip:remote_folder 

或は

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

実例:

scp -r /home/space/music/ root@www.ceodata.com:/home/root/others/ 
scp -r /home/space/music/ www.ceodata.com:/home/root/others/ 

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

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

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

実例:

scp root@www.ceodata.com:/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 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

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

Share

コメントを残す

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