Dateien auf Remote-Kopie abrufen, aber nicht lokal

Dateien auf Remote-Kopie abrufen, aber nicht lokal

Ich habe einen Ordner.

Ich habe eine Kopie dieses Ordners lokal und eine auf einem Server. Ich habe meinen lokalen Ordner nach Wunsch bearbeitet und dannrsynces an den Server.

Gibt es eine Möglichkeit, diese beiden Kopien (lokal und remote) zu vergleichen und eine Liste der Dateien zu erhalten, die sich auf der Remote-Kopie, aber nicht auf der lokalen Kopie befinden?

Antwort1

Der folgende, auf dem lokalen Computer ausgeführte rsync-Befehl listet die Dateien auf, die auf dem Remote-Host, aber nicht auf dem lokalen Host vorhanden sind.

rsync -av --dry-run --delete somedir/ user@remote:~/somedir/

Der --dry-runSchalter listet nur die Dateien auf, ohne tatsächlich etwas zu tun. Der --deleteSchalter in Kombination mit -v(verbose) listet die Dateien auf, die gelöscht würden, weil sie auf dem Remote-Host vorhanden sind, aber nicht auf dem lokalen Host, was Sie wollen.

Antwort2

Unison Dateisynchronisierertut genau das und verwendet den rsync-Algorithmus für die Schwerarbeit. Ich verwende es täglich.

Antwort3

Wenn Sie für die Rsync-Ausführung bereits SSH-Schlüssel haben, können Sie einen Remote-SSH-Befehl ausgeben und die Dateien im Verzeichnis auflisten und diese dann mit einer Kopie aus Ihrem lokalen Verzeichnis vergleichen.

ssh [email protected] ls -1 ~/foo > /tmp/remote.txt && ls -1 ~/foo > /tmp/local.txt && diff /tmp/remote.txt /tmp/local.txt

Extra-Punkt: Leiten Sie die Ausgabe von diff weiter anFarbunterschiedfür die Schönheit.

verwandte Informationen