Linux Command Line & Bash Scripting Mastery · レッスン

ファイル転送のためのSCPとRsync

「scp」による安全なファイルコピーと、「rsync」による効率的なファイル同期を、ローカルおよびリモート環境で使いこなします。

レッスン 3/412 ステップ

「ファイル転送のための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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 基本的なネットワークユーティリティ(ping、ip、netstat)
  2. Secure Shell(SSH)の基礎
  3. ファイル転送のためのSCPとRsync
  4. SSH鍵認証と設定ファイル
← Linux Command Line & Bash Scripting Masteryに戻る