はじめに
図書修復チームは、専用の受け取りアカウントを使うことになりました。準備済みの作業場所へ Garden Atlas を渡し、その後、目録と処置方法を更新して資料を 1 件追加し、古い生成一覧を廃止します。受け取り側は、渡された本文を読み、閲覧ツールを実行できなければなりません。
この実習は独立して開始し、認証情報とフォルダーが準備されています。基本的なターミナル操作と最初の実習のローカル rsync 手順がわかれば十分です。SSH ID、ホスト検証、リモートパスはここで説明します。コマンドと架空の図書本文は英語のままです。
準備済みの受け取りアカウントを確認する
このステップでは、準備済みの SSH ID を確認し、資料を実際の受け取りアカウントに渡します。Terminal を使用してください。この独立した実習では転送元と受け取り側を初版に作り直すため、前の実習のファイルは使いません。
2 つのアカウントは、この訓練環境とカーネルを共有します。移動の両側を表し、物理的な 2 台のマシンではありません。labex は /home/labex/project/folder-move/old、bindery は /home/bindery/incoming を所有します。受け取りルートには独自のメモと古い目録があります。
SSH は暗号化接続を通じ、別のアカウントとしてコマンドを実行します。クライアントの ID 鍵は利用者を認証し、サーバーのホスト鍵は接続先を識別します。役割は異なります。準備処理では、この環境の構成データから専用鍵と信頼済みの固定ホスト鍵を用意しました。プラットフォームのログイン経路は変更していません。
cd /home/labex/project/folder-move
cat ssh/config
Host bindery-desk はクライアント側の別名です。同じ環境のループバックアドレス 127.0.0.1 にあるユーザー bindery を選びます。IdentityFile は専用秘密鍵を指定します。内容を表示・コピーしないでください。IdentitiesOnly yes はその ID を選びます。UserKnownHostsFile は準備済みの固定鍵を指定し、StrictHostKeyChecking yes は未知または変更されたホストを拒否します。BatchMode yes はパスワード待ちにせず認証エラーを失敗として返します。
ssh-keygen -lf は公開鍵の指紋を表示します。SHA256: の値を準備データの指紋と比較します。
ssh-keygen -lf ssh/known_hosts
cat ssh/host-fingerprint.txt
ハッシュ値は一致する必要があります。ラベルやコメントは異なっていてもかまいません。ここでは信頼できる構成ファイルで期待する ID を決めています。実際の移動には、独立して信頼できる方法で得た管理者の指紋が必要です。信頼できないネットワークから鍵を取得しただけでは信頼を確立できません。不一致なら停止し、固定鍵の削除やホスト検証の無効化はしないでください。
-F ssh/config は通常の SSH 設定を置き換えず、この独立したクライアント設定を選択します。単一引用符内のコマンドは受け取り側で実行され、パスもリモート側のものです。セミコロンは、そのリモートシェルで順番に実行するコマンドを区切ります。転送前にアカウント、ホーム、rsync、実際の宛先を確認します。
ssh -F ssh/config bindery-desk 'whoami; pwd; rsync --version; ls -la /home/bindery/incoming; cat /home/bindery/incoming/receiver-note.txt'
rsync --version
アカウントは bindery、ホームは /home/bindery で、両端に rsync が表示されます。メモは同じ西側の棚に関する受け取り指示です。誤ったアカウントへの接続に成功しても、有効な移動とはいえません。権限拒否なら選択した ID や受け取り側の権限を調べ、ホスト変更の警告なら信頼済み接続先を調べます。どちらも安全でないオプションの追加では解決しません。
rsync の -e 'ssh -F ssh/config' は SSH 転送を選びます。宛先 bindery-desk:/home/bindery/incoming/collection/ は設定したアカウントと受け取り側のパスを使います。コロンがリモート宛先を示します。remote というローカルフォルダーでは SSH は使われません。既に練習した転送元の末尾スラッシュとフィルターを保ちます。
rsync -ani -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -ai -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'
受け取りアカウントから Garden Atlas の目録と紙のヒンジを使う処置方法を読みます。隠し設定と実行権限を使い、渡した閲覧ツールを本当にリモート実行しています。その後もローカルのプロンプトに戻ります。単発の SSH コマンドはローカルターミナルをリモートホームへ移しません。
最初のリモート引き渡しを完了する
このステップでは、独立した生成一覧を渡し、受け取り側独自のデータと転送元が管理するデータを SSH 経由で読みます。引き続き /home/labex/project/folder-move の Terminal を使います。
管理対象の generated/ ディレクトリだけを同期します。私的な人員配置メモは転送から除外します。
rsync -ani -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -ai -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/receiver-note.txt; /home/bindery/incoming/collection/read-book'
Garden Atlas | desk edition 1、変更されていない受け取りメモ、利用可能な閲覧ツールが確認できます。アーカイブモードは実行ビットを保ちますが、受信ファイルは受け取りアカウントの所有となり、任意の転送元所有者を保持できません。受け取りルートをミラー化せずに、2 つの管理対象ディレクトリが揃いました。
以前のフィルターなし転送でプレビューが入った場合は、まず SSH で該当する不要ファイルを確認します。ローカル実習で学んだ rm の方法で、その一時ファイルだけを削除します。incoming や受け取りメモを消さないでください。フィルターは今後の転送を防ぎますが、既にコピーされたファイルは掃除しません。
管理範囲内で次版を適用する
このステップでは、第 2 版を渡し、古い生成一覧だけを廃止します。/home/labex/project/folder-move の Terminal に留まってください。コロン後の宛先パスは受け取りアカウント側のものです。
cat は複数のファイル名を受け取り、指定順に表示します。編集可能な転送元を置き換える前に、提供された次版を読みます。
cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt
目録は 48 葉となり、処置方法はリネンのヒンジに変わり、補遺も追加されています。cp -a はファイル属性を保って再帰的にコピーします。revision/. は隠しファイルを含む全内容を意味します。提供された変更を old/ に重ねますが、改訂版にない古い項目は削除しません。作業台は old/generated/obsolete.txt を明示的に廃止するため、この名前の転送元ファイルだけを削除します。rm はファイルを永久に削除します。パスを広げないでください。
cp -a revision/. old/
rm old/generated/obsolete.txt
通常 rsync はサイズと更新時刻からデータの変更を判断します。-c は内容のチェックサム比較を追加します。小さいファイルなので負担は小さく、時刻が保持された同じサイズの内容変更も検出できます。版の履歴やバックアップは作りません。資料の更新を試行してから実行します。
rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -aci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
資料の試行には、改訂された 2 件の本文と新しい補遺が現れ、一時プレビューは含まれないはずです。属性だけの変更が現れる場合もあります。
--delete は、転送元に存在しない宛先項目を選択した同期ディレクトリ内で削除します。ここでは generated/ だけが完全な管理対象で、受け取りルートは違います。廃止を試行し、*deleting obsolete.txt を確認して、まったく同じ範囲に適用します。
rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -aci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/collection/texts/addendum.txt /home/bindery/incoming/receiver-note.txt'
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'
作業一覧の第 2 版、新しい資料、元の受け取りメモ、更新後の閲覧ツール出力が読めるはずです。ルート全体を --delete でミラー化するとメモを消す可能性があります。この 1 件の管理対象一覧を廃止するために使わないでください。
同じ試行を繰り返します。
rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
残るファイル変更はないはずです。宣言された範囲内では繰り返しが安全ですが、今後転送元から削除する際も、どの宛先ディレクトリが管理対象かを意識的に判断する必要があります。rsync だけでは初版を復元できません。履歴が必要なら別途バックアップを用意してください。
まとめ
利用可能な資料集を渡し、隠し設定と閲覧ツールの権限、受け取り側のメモを保持しました。2 回目の同期では管理対象のファイルを更新し、指定範囲内だけで廃止済みの一覧を削除しました。同期には方向があり、履歴付きバックアップや競合のマージではありません。



