その他
    ホーム 技術発信 DoRuby scpコマンドでファイルをリモートサーバからローカルへコピーする
    scpコマンドでファイルをリモートサーバからローカルへコピーする
     

    scpコマンドでファイルをリモートサーバからローカルへコピーする

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    リモートサーバからローカルへファイルをコピーするscpコマンドについて備忘録としてまとめました。

    はじめに

     約3週間ぶりの投稿となります。贔屓球団がクライマックスシリーズのファイナルステージまで勝ち進み、まだ野球が見れる喜びを感じているむらさきです。
     さて今回は、リモートサーバーにあるファイルをローカルに持って来て取り出したいということがあり、その時に使ったscpコマンドについて備忘録として記事にしたいと思います。

    1.scpコマンドとは

     scpコマンドはLinux系で使用できるコマンドで、sshを使用してネットワーク間でファイルをやり取りすることができます。
    SSHを使用するため通信が暗号化されて安全にやり取りすることができるのが特徴です。

    2.scpコマンドの使い方

    scpコマンドの基本の形は以下になります

    scp [オプション] [コピー元] [コピー先]
    

    リモートサーバからローカルサーバにコピーしたい場合は

    scp [オプション] ユーザ名@リモートサーバのホスト名(or IPアドレス):送りたいファイルのパス ローカル側の保存したいファイルのパス
    

    となります。

    例えば下記の状態だったとします

    ユーザ名: violet
    リモートサーバのホスト名: scp.command.test.jp
    送りたいファイルのパス: /public/necessary_data.csv
    ローカル側の保存したいファイルのパス: /media/sf_share_test/
    

    この場合なら

    scp [オプション] violet@scp.command.test.jp:/public/necessary_data.csv /media/sf_share_test/
    

    とすることでコピーすることができます。

    3.scpコマンドのオプション

    次にscpコマンドのオプションはどんなものがあるのかを見ていきたいと思います。

    ・公開鍵ファイルを指定する

    リモートサーバへの接続にSSH鍵が必要な場合は鍵をローカルサーバに保存して【 -i 】オプションで接続することができます

    鍵の位置: ~/.ssh/violet_key.pub
    
    scp -i ~/.ssh/violet_key.pub violet@scp.command.test.jp:/public/necessary_data.csv /media/sf_share_test/
    

    ・接続するポートを設定する

    ポート番号を指定して接続する場合は【 -P 】オプションを使用します(大文字のPです)

    ポート番号: 55555
    
    scp -P 55555 violet@scp.command.test.jp:/public/necessary_data.csv /media/sf_share_test/
    

    ・ディレクトリごとコピーを行う

    ディレクトリごと再帰的にコピーしたい場合は【 -r 】オプションを使用します

    scp -r violet@scp.command.test.jp:/public/ media/sf_share_test/
    

    おわりに

     いかがだったでしょうか。大学時代にscpコマンドを1度だけ習っていたので使えることは思い出したのですが、コピー元とコピー先のどちらが先か…などが思い出せなかったので備忘録として今回の記事を作成しました。
     一度学んだら忘れないが欲しいですね。 ん…?脳?……脳といえば前回、 指を動かして脳を活性化!?手と脳の関係とは? という記事を書いたのでまだ読んでない方は是非読みましょう!view数が増えると僕がちょっとだけ嬉しくなります。