Mit ssh ist es ja möglich auch Befehle auf der Remoteseite abzusetzen und mit diff kann man unter anderem Dateien vergleichen. Es ist allerdings auch eine Kombination aus beiden möglich.
Die folgende Bash Funktion habe ich in meiner .bashrc eingetragen:
remote-command-diff ()
{
if [ -z "$1" ]; then
echo "Usage remote-command-diff 'command to execute'";
return 1;
fi;
echo "Remote-Command-Diff [ '>' = local | '<' = remote ]";
diff <(ssh user@my-remote-host ${@}) <(${@});
return $?
}
Achtung:
user@my-remote-host
ist nur ein Platzhalter. Angepasst werden muß natürlich noch der tatsächliche User und den zu verwendenden Remote Host bzw. IP Adresse.
Außerdem sollte man diese Funktion nicht auf Befehle anwenden, wo zum einen der gesamte Output relevant ist und zum anderen auch nicht bei interaktiven Eingaben. Trotzdem gibt es jede Menge nützlicher Use Cases.
Beispielanwendung:
user@host:~ $ remote-command-diff crontab -l
Beispielausgabe:
user@host:~ $ remote-command-diff crontab -l
Remote-Command-Diff [ '>' = local | '<' = remote ]
23c23
< */20 * * * 1-7 /home/user/tools/bin/check.sh
> #*/20 * * * 1-7 /home/user/tools/bin/check.sh
In diesem Beispiel sieht man sehr schnell welche Unterschiede in der crontab zwischen dem lokalen und dem Remote Server vorliegen.
Keine Kommentare:
Kommentar veröffentlichen