ネットワーク経由のファイル移動には、一度きりのコピー、継続的にマウントする共有、同期するディレクトリツリーなどがあります。方向、データ量、更新頻度、認証モデル、ネットワークの信頼性、メタデータ要件、クライアントにライブ共有が必要かどうかに応じて方法を選びます。
ネットワーク共有 · レッスン 1
ファイル共有の概要
SSH を利用したファイル転送方法を選び、scp で安全にコピーする方法を学びます。
転送方法を選ぶ
scpまたは SFTP は、SSH で認証されたコピーまたは対話型転送を行う。rsyncは、ローカルまたは SSH などのトランスポート経由でディレクトリツリーを効率よく同期する。- NFS は、主に Unix 系ホスト間でサーバーの export をマウント済みファイルシステムとして提供する。
- Linux では Samba が実装する SMB は、多くの OS 間で共有アクセスを提供する。
- HTTP は単純なダウンロードに使えるが、一般的なマウント済みファイルシステムではない。
コピーしただけで自動的にバックアップになるわけではありません。バックアップ設計には、独立した保存世代、復元テスト、完全性検査、同じ削除や侵害からの保護も必要です。
SSH 経由で一度だけファイルをコピーするのに適したツールはどれですか?
scp のパスを理解する
基本形は scp SOURCE DESTINATION です。リモートのオペランドは通常、user@host:path の形式を使います。
$ scp -- report.txt alice@example.net:/srv/incoming/
$ scp -- alice@example.net:/srv/outgoing/result.txt ./result.txt
最初のコマンドはローカルファイルを送信し、二番目はリモートファイルを取得します。コロンがリモートホストとパスを区切ります。シェルにとって特別な文字を含むパスは引用し、信頼できない曖昧なファイル名を避けてください。
scp でファイルを取得する場合、リモート指定はどこに置きますか?
ディレクトリをコピーする
ディレクトリツリーには再帰モードを使います。
$ scp -r -- project/ alice@example.net:/srv/incoming/
コピー前にデータ量、シンボリックリンク、権限、所有権要件、空き容量、コピー先での名前を確認します。SCP は同期ポリシーではないため、ディレクトリを繰り返しコピーしても、コピー元から消えたファイルがコピー先に残ることがあります。
scp -r は何を要求しますか?
相手の身元と結果を検証する
SSH のホスト鍵検証は、誤ったサーバーへの接続を防ぎます。ホスト鍵が変わった場合は警告を回避せず、信頼できる経路で確認すべき事象として扱ってください。最小権限のアカウントを使い、環境に適した方法で鍵を管理します。
転送後は終了状態、想定ファイル、サイズ、メタデータを検証し、完全性要件があれば両端で独立して計算したハッシュも比較します。コピー先のアプリケーションが実際にデータを読めることも確認してください。
SSH が予期しないホスト鍵の変更を報告したら、どうすべきですか?
レッスン完了
ファイル共有の概要 を完了しました
これで、安全な一度きりのネットワークファイルコピーを選択し、検証できます。
アクセス要件と保存要件に共有方法を合わせる。
ローカルとリモートの
scpオペランドを、コピー元とコピー先の順に読む。ディレクトリツリーには意図して再帰モードを使う。
サーバーの身元、転送結果、コピー先での利用可否を検証する。