LoginSignup
12
3

More than 1 year has passed since last update.

【Linux】scpコマンドの使い方

Posted at

scpコマンドの使い方を良く忘れるので備忘録として記事を書きます。
(特にユーザとホスト名どちらが先かをよく忘れます)

scpコマンドとは

サーバ間でファイルの送受信を行うためのコマンドです。
通信プロトコルにはSSHが使われます。(SecureCoPyと覚えるといいでしょう。)

基本的な実行方法

まずはオプションを使わずに実行する方法を確認します。
この場合、リモートサーバに接続する際の認証方法はパスワード認証です。

ローカルサーバからリモートサーバにファイルをコピーする

bash
scp [コピー元のローカルファイル] [リモートサーバのユーザ]@[リモートサーバのIPorホスト名]:[コピー先のディレクトリ]

例えば、ローカルサーバの /usr/local/hoge.txt000.00.0.0のrootユーザの/tmpディレクトリに送信する場合次のようになります。

bash
scp /usr/local/hoge.txt root@000.00.0.0:/tmp

複数パスを指定するとまとめてコピーすることができます。

リモートサーバからローカルサーバにファイルをコピーする

bash
scp [リモートサーバのユーザ]@[リモートサーバのIPorホスト名]:[コピー元のファイルパス] [ローカルサーバのコピー先ディレクトリ]

リモートサーバの /usr/local/hoge.txt をローカルサーバのrootユーザの/tmpディレクトリに送信する場合次のようになります。

bash
scp root@000.00.0.0:/usr/local/hoge.txt /tmp

使用頻度が高めなオプション

オプション名 説明
-4 IPv4のみ許可する
-6 IPv6のみ許可する
-C 通信量を圧縮する
-i 秘密鍵ファイルのパス
-P リモートホストのポート
-p 権限や変更日時を保持したままコピーする
-r ディレクトリごと再帰的にコピーする

特によく使うのは-iと-rです。

-i: パスワード認証だと対話的に実行する必要があり、自動化の妨げになる。それに対して鍵認証の場合対話処理が不要であるため自動化しやすい。

-r: ディレクトリごとコピーすれば何回もコマンドを実行する必要がない。

参考資料

12
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
3