こんにちは、iijm-lです🍎
7月24日は「スポーツの日」ですね⚽️
普段はスポーツの"ス"の字もない生活を送っています。
しかし最近、「運動しよう!」と重い身体を奮い立たせ、スポーツジムに通い始めました。
汗を流すのって、気持ちいいですよね!
さあ果たしていつまで続くのでしょうか😌
さて今回は「サーバ間のファイルコピーを手軽に!【.ssh/config②】」です💫
あれ、既視感のあるこのタイトル...。
実を言うと、前回の記事「サーバへのログインを手軽に!【.ssh/config】」を読んでくださった方から、
「scp
コマンドも簡単にできる方法あるの?」
とご質問をいただきました。
調べてみると、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ファイルについてもっと深く勉強して、さらに便利なエンジニア生活を目指していきたいと思います💫