アメリエフの技術ブログ

Amelieff Staff Blog

サーバ間のファイル転送を手軽に!【.ssh/config ②】

こんにちは、iijm-lです🍎

7月24日は「スポーツの日」ですね⚽️

普段はスポーツの"ス"の字もない生活を送っています。
しかし最近、「運動しよう!」と重い身体を奮い立たせ、スポーツジムに通い始めました。
汗を流すのって、気持ちいいですよね!
f:id:iijm-l:20200701102344p:plain
さあ果たしていつまで続くのでしょうか😌


さて今回は「サーバ間のファイルコピーを手軽に!【.ssh/config②】」です💫
あれ、既視感のあるこのタイトル...。

実を言うと、前回の記事「サーバへのログインを手軽に!【.ssh/config】」を読んでくださった方から、

scpコマンドも簡単にできる方法あるの?」

とご質問をいただきました。

f:id:iijm-l:20200701094420p:plain

調べてみると、scpコマンドも.ssh/configが適応されるようです。

そのため、

scpコマンドもsshと同じように

ユーザー名やIPアドレスが省略できる

ということになります!
そうなんだ!知らなかった👏🏻!


scpの基本操作

サーバ間でファイル転送を行うには、scpコマンドを使います。
いつも通りにscpコマンドでファイル転送してみます。

$ scp want_to_send.txt iijm-l@192.168.10.1:~/directory/

コマンド長いです...。
しかし.ssh/configを使えば、これを入力する必要はありません

.ssh/configの内容は以下の通りとします。
→ 詳細は前回の記事へ!

Host test
  HostName    192.168.10.1
  User        iijm-l
  IdentityFile ~/.ssh/id_rsa


さあ、検証していきます!


ローカルサーバにあるファイルをリモートサーバへ転送


ローカルにあるファイルをtestサーバーへ、scpを使ってコピーしたいと思います。

現在ローカルサーバにいます。
実行ディレクトリには、sample1.txtが存在します。

[iijm-l@local ~]$ ls
sample1.txt


以下のコマンドで、ローカルにあるsample1.txtを、testサーバーのホームディレクトリへコピーします。

[iijm-l@local ~]$ scp sample1.txt test:~/    # scp sample1.txt iijm-l@192.168.10.1:~/ と同義
sample1.txt                                   100%    0     0.0KB/s   00:00 


あんなに短いコマンドですが、無事転送されましたね!
実際にtestサーバーにログインして、ちゃんとコピーされているか確認します。

[iijm-l@local ~]$ ssh test
Last login: ~~
[iijm-l@test ~]$ ls
sample1.txt

うん、想定通りですね☺️

リモートサーバにあるファイルをローカルサーバへ転送


次は、リモートサーバにあるファイルを、ローカルからscpを使ってダウンロードしたいと思います。

[iijm-l@test ~]$ touch sample2.txt
[iijm-l@test ~]$ ls
sample1.txt  sample2.txt


同じく現在ローカルサーバにいます。実行ディレクトリには、sample1.txtのみ存在します。

[iijm-l@local ~]$ ls
sample1.txt


以下のコマンドで、testサーバにあるsample2.txtを、ローカルの実行ディレクトリにコピーします。

[iijm-l@local ~]$ scp test:~/sample2.txt .  # scp iijm-l@192.168.10.1:~/sample2.txt . と同義
sample2.txt                                   100%    0     0.0KB/s   00:00


実行ディレクトリを確認します。

[iijm-l@local ~]$ ls
sample1.txt  sample2.txt

ちゃんとコピーされていますね☺️


まとめ


プログラミングを学び始めて薄々気づいてはいましたが、

個人configファイルって有用ですばらしい✨

と今回の執筆で確信しました。

今後もシステム内部にある色んなconfigファイルについてもっと深く勉強して、さらに便利なエンジニア生活を目指していきたいと思います💫