staging.inyokaproject.org

ssh zugriff und auslesen eines String

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1303

27.22.12
 27.22.12.tinycorelinux.comth ABSOLUTELY NO WARRANTY.
 27.22.12.tinycorelinux.comth ABSOLUTELY NO WARRANTY.

Wenn sed diese Zeilen ausgibt, existieren auch diese Zeilen in deiner Datei "/tmp/status.dat". Um zu sagen, wie dein sed Befehl auszusehen hat, solltest du den Inhalt dieser Datei dir mal anschauen bzw hier in einem codeblock veröffentlichen, wenn keine kritischen Daten dort vorhanden sind.

Aus diesem Grund führe mal den folgenden Befehl aus und schau dir die Ausgabe an:

sshpass -p $PW ssh -o StrictHostKeyChecking=no $BN@$IP -p 22 -t "od -c /tmp/status.dat"

Es würde mich nicht wundern, wenn dort mehrere relevante Zeilen (\n) oder sogar (\r) auftauchen.

jnpanzer

(Themenstarter)

Anmeldungsdatum:
24. Januar 2022

Beiträge: 19

In der Status.dat existieren die Zeilen nicht, ich hatte die schon in einen vorherigen Post veröffentlich. Ich leg die morgen früh mal komplett als Datei ab. Ist nur ein XML Tag. Mit SCP gehts.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

shiro schrieb:

27.22.12
 27.22.12.tinycorelinux.comth ABSOLUTELY NO WARRANTY.
 27.22.12.tinycorelinux.comth ABSOLUTELY NO WARRANTY.

Wenn sed diese Zeilen ausgibt, existieren auch diese Zeilen in deiner Datei "/tmp/status.dat". Um zu sagen, wie dein sed Befehl auszusehen hat, solltest du den Inhalt dieser Datei dir mal anschauen bzw hier in einem codeblock veröffentlichen, wenn keine kritischen Daten dort vorhanden sind.

Das klingt frappant logisch, aber was, wenn nicht sed diese Zeilen ausgibt?

Das passt nämlich nicht zu dem sed-Befehl, der da lautete:

1
sed -nr 's/.*SwVersionTerminal=.([0-9.]+). .*/\1/p'

Das -n unterdrückt jegliche Ausgabe, nur wenn ".*SwVersionTerminal..." gefunden wird gibt der p-Befehl am Ende den ersten (und einzigen) Treffer des Matches in runden Klammern aus - eine Ziffern-Punkte-Kombination.

Daraus folgt, dass es nicht sed sein kann.

jnpanzer

(Themenstarter)

Anmeldungsdatum:
24. Januar 2022

Beiträge: 19

Um das Thema abzuschließen So Funktioniert es und ich komme zu meinen Ergebnis

* automatisches anleden bei unbekannten Host * auslesen der Version * übergabe des Password

1
2
3
4
5
6
7
#/bin/sh
IP="192.168.178.100"
PW="password"
BN="benutzer"

SW=$(sshpass -p $PW scp -o StrictHostKeyChecking=no $BN@$IP:/tmp/status.dat . && sed -nr 's/.*SwVersionTerminal=.([0-9.]+). .*/\1/p' status.dat)
echo $SW

jnpanzer

(Themenstarter)

Anmeldungsdatum:
24. Januar 2022

Beiträge: 19

Danke für die tolle Unterstützung !!

Antworten |