Einführung
Das Buchrestaurierungsteam verwendet nun ein eigenes Empfängerkonto. Liefere Garden Atlas an dessen vorbereiteten Arbeitsplatz, aktualisiere danach Katalog und Behandlung, ergänze ein Blatt und entferne die alte erzeugte Liste. Der Empfänger muss die gelieferten Texte lesen und das Leseprogramm ausführen können.
Diese Übung beginnt unabhängig mit vorbereiteten Zugangsdaten und Ordnern. Grundlegende Terminalkenntnisse und die lokalen rsync-Verfahren aus der ersten Übung genügen; SSH-Identität, Hostprüfung und entfernte Pfade werden hier eingeführt. Befehle und fiktive Buchtexte bleiben englisch.
Das vorbereitete Empfängerkonto identifizieren
In diesem Schritt bestätigst du die vorbereitete SSH-Identität und lieferst die Sammlung an das tatsächliche Empfängerkonto. Verwende Terminal. Diese unabhängige Übung setzt Quelle und Empfänger auf Ausgabe 1 zurück; Dateien der vorherigen Übung werden nicht wiederverwendet.
Die beiden Konten teilen diese Übungsumgebung und ihren Kernel. Sie stellen zwei Seiten eines Umzugs dar, keine zwei physischen Rechner. labex besitzt /home/labex/project/folder-move/old; bindery besitzt /home/bindery/incoming. Im Empfangswurzelverzeichnis liegen eine eigene Notiz und ein alter Katalog.
SSH führt einen Befehl über eine verschlüsselte Verbindung unter einem anderen Konto aus. Der Identitätsschlüssel des Clients authentifiziert dich; der Hostschlüssel des Servers identifiziert den Endpunkt. Das sind unterschiedliche Aufgaben. Die Vorbereitung hat einen eigenen Schlüssel und einen vertrauenswürdig hinterlegten Hostschlüssel aus den Bereitstellungsdaten dieser Umgebung eingerichtet. Der Plattformzugang wurde nicht geändert.
cd /home/labex/project/folder-move
cat ssh/config
Host bindery-desk ist ein Clientalias. Er wählt Benutzer bindery auf 127.0.0.1, der Loopback-Adresse derselben Umgebung. IdentityFile bezeichnet deinen eigenen privaten Schlüssel; zeige oder kopiere dessen Inhalt nicht. IdentitiesOnly yes wählt diese Identität. UserKnownHostsFile bezeichnet den hinterlegten Hostschlüssel; StrictHostKeyChecking yes lehnt unbekannte oder veränderte Hosts ab. BatchMode yes lässt Authentifizierungsfehler scheitern, statt auf ein Passwort zu warten.
ssh-keygen -lf zeigt den Fingerabdruck eines öffentlichen Schlüssels. Vergleiche den Wert SHA256: mit dem Fingerabdruck aus der Bereitstellung:
ssh-keygen -lf ssh/known_hosts
cat ssh/host-fingerprint.txt
Die Hashwerte müssen übereinstimmen; Beschriftungen und Kommentare dürfen abweichen. Hier legt die vertrauenswürdige Bereitstellungsdatei die erwartete Identität fest; ein echter Umzug benötigt einen unabhängig vertrauenswürdig erhaltenen Administratorfingerabdruck. Ein allein aus einem nicht vertrauenswürdigen Netz geholter Schlüssel begründet kein Vertrauen. Halte bei Abweichungen an; lösche den hinterlegten Schlüssel nicht und deaktiviere die Hostprüfung nicht.
-F ssh/config wählt diese gesonderte Clientkonfiguration, ohne deine normalen SSH-Einstellungen zu ersetzen. Ein einfach zitiert übergebener Befehl wird beim Empfänger ausgeführt; seine Pfade sind entfernt. Semikolons trennen Befehle, die dort nacheinander in der Shell laufen. Bestätige vor der Übertragung Konto, Heimatverzeichnis, rsync und tatsächliches Ziel:
ssh -F ssh/config bindery-desk 'whoami; pwd; rsync --version; ls -la /home/bindery/incoming; cat /home/bindery/incoming/receiver-note.txt'
rsync --version
Das Konto heißt bindery, das Heimatverzeichnis ist /home/bindery, und beide Enden zeigen rsync. Die Notiz enthält weiterhin die Anweisung zum Westregal. Eine erfolgreiche Verbindung zum falschen Konto ist kein gültiger Umzug. Bei verweigerten Rechten müssen Identität oder Empfängerberechtigungen untersucht werden; bei einer Hoständerungswarnung der vertrauenswürdige Endpunkt. Unsichere Optionen lösen keines dieser Probleme.
Bei rsync wählt -e 'ssh -F ssh/config' den SSH-Transport. Das Ziel bindery-desk:/home/bindery/incoming/collection/ nutzt das konfigurierte Konto und einen Pfad auf diesem Empfänger. Der Doppelpunkt macht es zum entfernten Ziel; ein lokaler Ordner namens remote würde kein SSH verwenden. Behalte den abschließenden Schrägstrich der Quelle und den bereits geübten Filter bei:
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'
Lies den Garden-Atlas-Katalog und die Behandlung mit Papierscharnieren vom Empfängerkonto aus. Das ist die tatsächliche entfernte Nutzung des gelieferten Leseprogramms samt verborgener Konfiguration und Ausführungsrecht. Anschließend bist du wieder am lokalen Prompt; ein einzelner SSH-Befehl versetzt dein lokales Terminal nicht ins entfernte Heimatverzeichnis.
Die erste entfernte Lieferung abschließen
In diesem Schritt lieferst du die gesonderte erzeugte Liste und liest sowohl empfängereigene als auch quellverwaltete Daten über SSH. Arbeite weiter in Terminal unter /home/labex/project/folder-move.
Synchronisiere nur das verwaltete Verzeichnis generated/. Private Personalnotizen bleiben außerhalb der Übertragung:
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'
Erwarte Garden Atlas | desk edition 1, die unveränderte Empfangsnotiz und das nutzbare Leseprogramm. Der Archivmodus erhält das Ausführungsbit, aber empfangene Dateien gehören dem Empfängerkonto; beliebige Quelleigentümer kann es nicht erhalten. Beide verwalteten Verzeichnisse sind vollständig, ohne das Empfangswurzelverzeichnis zu spiegeln.
Falls eine frühere ungefilterte Übertragung eine Vorschau mitkopiert hat, untersuche zuerst genau diese unerwünschte Datei über SSH. Entferne nur diese temporäre Datei mit dem im lokalen Teil gelernten rm-Verfahren. Lösche weder incoming noch die Empfangsnotiz. Ein Filter verhindert spätere Übertragungen, bereinigt aber keine bereits kopierte Datei.
Die Folgeausgabe im verwalteten Bereich übernehmen
In diesem Schritt lieferst du eine zweite Ausgabe und entfernst ausschließlich die alte erzeugte Liste. Bleibe in Terminal unter /home/labex/project/folder-move. Zielpfade hinter dem Doppelpunkt liegen auf dem Empfängerkonto.
cat akzeptiert mehrere Dateinamen und zeigt sie in dieser Reihenfolge an. Lies die bereitgestellte Folgeausgabe, bevor du die bearbeitbare Quelle ersetzt:
cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt
Der Katalog umfasst jetzt 48 Blätter, die Behandlung verwendet Leinenscharniere und ein Nachtrag ist neu. cp -a kopiert rekursiv und erhält Dateiattribute. revision/. bedeutet sämtliche Inhalte einschließlich verborgener Dateien. Dadurch werden die gelieferten Änderungen über old/ kopiert; ein in der Überarbeitung fehlender alter Eintrag wird nicht gelöscht. Der Arbeitsplatz mustert old/generated/obsolete.txt ausdrücklich aus: Lösche nur diese benannte Quelldatei. rm löscht dauerhaft; erweitere den Pfad nicht.
cp -a revision/. old/
rm old/generated/obsolete.txt
Normalerweise erkennt rsync Datenänderungen an Größe und Änderungszeit. -c ergänzt einen Prüfsummenvergleich des Inhalts. Bei diesen kleinen Dateien ist der Aufwand gering; auch gleich große Änderungen mit beibehaltenen Zeitstempeln werden erkannt. Versionshistorie oder Sicherung entstehen dadurch nicht. Prüfe die Vorschau und übernimm die Sammlung:
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/
Die Sammlungsvorschau sollte die beiden überarbeiteten Texte und den neuen Nachtrag zeigen, ohne temporäre Vorschauen. Auch reine Attributänderungen können erscheinen.
--delete entfernt Zieleinträge, die in der Quelle fehlen, innerhalb des gewählten Synchronisierungsverzeichnisses. Hier wird nur generated/ vollständig verwaltet, nicht die Empfangswurzel. Prüfe die Ausmusterung in der Vorschau, achte auf *deleting obsolete.txt und wende genau denselben Bereich an:
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'
Du solltest Arbeitsplatz-Ausgabe 2, das neue Blatt, die ursprüngliche Empfangsnotiz und die aktualisierte Leseausgabe sehen. Ein wurzelweiter Spiegel mit --delete könnte die Notiz löschen. Verwende ihn niemals zum Ausmustern dieser einen verwalteten Liste.
Wiederhole dieselben Vorschauen:
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/
Es sollten keine Dateiänderungen verbleiben. Innerhalb des erklärten Bereichs ist die Wiederholung sicher; eine spätere Quelllöschung verlangt dennoch eine bewusste Entscheidung darüber, welches Zielverzeichnis verwaltet wird. Die ursprüngliche Ausgabe lässt sich mit rsync allein nicht wiederherstellen. Verwende eine eigene Sicherung, wenn die Historie wichtig ist.
Zusammenfassung
Du hast eine nutzbare Sammlung geliefert, ihre verborgene Konfiguration und die Ausführungsrechte des Leseprogramms erhalten und die Notiz am Empfangsplatz bewahrt. Eine zweite Synchronisierung aktualisierte die verwalteten Dateien und entfernte eine ausgemusterte Liste ausschließlich im festgelegten Bereich. Synchronisierung hat eine Richtung; sie ist weder eine versionierte Sicherung noch eine Zusammenführung von Konflikten.



