ファイル転送のためのSCPとRsync
「scp」による安全なファイルコピーと、「rsync」による効率的なファイル同期を、ローカルおよびリモート環境で使いこなします。
「ファイル転送のためのSCPとRsync」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
安全なファイル転送
リモートサーバーを扱う際には、ファイルを安全に転送することが重要です。転送中のデータを保護し、完全性を確保できるツールが必要です。
このレッスンでは、安全なコピーに使うscpと、効率的な同期に使うrsyncという2つの強力なコマンドを紹介します。
SCP: Secure Copy Protocol
SCPはSecure Copy Protocolの略です。ネットワーク上のホスト間で、ファイルやディレクトリを安全にコピーできるコマンドラインユーティリティです。
- データ転送にSSHを使用するため、暗号化と認証が提供されます。
- 一度きりのファイル転送をすばやく行うのに適しています。
- ローカルからリモート、リモートからローカルのどちらにも簡単に使用できます。
SCPの構文: ローカルからリモートへ
ローカルマシンからリモートサーバーへファイルをコピーするには、次の構文を使用します。
scp local_file user@remote_host:/path/to/destination
- local_file: 現在のマシン上にあるファイルです。
- user: リモートサーバー上のユーザー名です。
- remote_host: リモートサーバーのIPアドレスまたはホスト名です。
- /path/to/destination: リモートサーバー上でファイルを保存する場所です。
SCPの例: ローカルからリモートへ
現在のディレクトリにあるmyreport.txtというファイルを、server.comの/home/coddy/reports/ディレクトリにコピーしてみましょう。
scp myreport.txt coddy@server.com:/home/coddy/reports/SCPの構文: リモートからローカルへ
リモートサーバーからローカルマシンへファイルをコピーする構文は、コピー元とコピー先が逆になる点を除けば同じです。
scp user@remote_host:/path/to/remote_file local_destination
- user@remote_host:/path/to/remote_file: リモートサーバー上のファイルへの完全なパスです。
- local_destination: ローカルマシン上でファイルを保存する場所です。現在のディレクトリには
.を使用します。
SCPの例: リモートからローカルへ
server.comの/home/coddy/にあるdata.csvというファイルを取得し、現在のローカルディレクトリに保存してみましょう。
scp coddy@server.com:/home/coddy/data.csv .Rsync: 効率的な同期
Rsync(remote synchronization)は、ローカルまたはリモートでファイルやディレクトリをコピー・同期できる汎用性の高いツールです。
主な利点は次のとおりです。
- 効率性: ファイル全体ではなく差分だけを転送するため、帯域幅を節約できます。
- 再開可能: 中断された転送を再開できます。
- 属性の保持: 権限、タイムスタンプ、所有者を保持します。
- 柔軟性: 転送を細かく調整するための多くのオプションがあります。
Rsyncの構文: 基本的な使い方
ローカルディレクトリをリモートディレクトリに同期する、rsyncの一般的な構文は次のとおりです。
rsync [options] local_source/ user@remote_host:/path/to/destination/
- [options]: rsyncの動作を制御するフラグです。
- local_source/: ローカルマシン上のディレクトリです(末尾のスラッシュが重要です)。
- user@remote_host:/path/to/destination/: リモート側の場所です。
Rsyncの実践: 基本的な同期
ローカルディレクトリmyproject/を、server.comの/srv/web/myproject/に同期してみましょう。アーカイブモード、詳細表示、圧縮を指定する-avzオプションを使用します。
rsync -avz myproject/ coddy@server.com:/srv/web/myproject/Rsyncの力: 主なオプション
Rsyncには、強力なオプションが数多くあります。
-a(archive): 複数のオプション(再帰処理、権限やタイムスタンプの保持など)をまとめて指定する一般的なショートカットです。-z(compress): 転送中にファイルデータを圧縮し、帯域幅の使用量を減らします。--delete: コピー元に存在しない余分なファイルをコピー先のディレクトリから削除します。使用には注意が必要です。-n(dry run): 実際には変更を加えず、実行される内容を表示します。まずは必ずこのオプションでテストしてください。
クイックチェック: ファイル転送ツール
ローカルマシンからリモートサーバーへ大きなディレクトリをコピーする必要があります。以降の実行では変更されたファイルだけを転送し、コピー元で削除されたファイルもコピー先から削除したいとします。
この作業に最適なコマンドとオプションはどれでしょうか。
復習: SCPとRsyncの習得
安全で効率的なファイル転送に欠かせない2つのツールを習得しました。
- SCPは、SSHを使ってファイルやディレクトリを安全かつ迅速に一度だけコピーするのに適しています。
- Rsyncは、ファイルやディレクトリの同期に最適なツールです。変更分だけを転送することで高い効率を実現し、`--delete`のような強力なオプションで完全なミラーリングも行えます。
目的に合ったツールを選び、ネットワーク越しのファイル管理をプロのように行いましょう。
AI チューターと学ぶ Bash — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 22
- レッスン
- 88
よくある質問
「ファイル転送のためのSCPとRsync」レッスンは無料ですか?
はい。「ファイル転送のためのSCPとRsync」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「ファイル転送のためのSCPとRsync」で何を学びますか?
「scp」による安全なファイルコピーと、「rsync」による効率的なファイル同期を、ローカルおよびリモート環境で使いこなします。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ファイル転送のためのSCPとRsync」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 基本的なネットワークユーティリティ(ping、ip、netstat)
- Secure Shell(SSH)の基礎
- ファイル転送のためのSCPとRsync
- SSH鍵認証と設定ファイル