Sonie
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
ich möchte auf einer anderen Maschine mittels SCP Dateien herunterladen und das scripten. für die Verbindung ist nur ssh/scp erlaubt, keine passphrasen. natürlich kann ich mich auf der zielmaschine anmelden und dann mit scp die entsprechenden files kopieren, meine idee ist, einen auswahl dialog auf der anderen maschine zu starten, mit rückgabe des dateinamens. also manuell
ssh zielrechner
cd .../verzeichnis
scp file ... zumeinemrechner
exit als Oberfläche würd ich gerne dialog benutzen
| dialog --fselect "/" "" 70 0
|
gibt mir auch als string den gewünschten string zurück ich versuche das per script so auszuführen
| file=$(sshpass -p password ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@source-server dialog --stdout --fselect "/" "" 70 0)
|
bringt aber einen fehler, kann mir da jemand einen tipp geben?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Sonie schrieb: bringt aber einen fehler
Da hilft eine Lösung. Richtig fragen.
|
Sonie
(Themenstarter)
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
bringt den Fehler: "Error opening terminal: unknown."
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Da fehlt der Parameter -t im SSH-Kommando. Dieser bewirkt, dass eine Pseudo-TTY-Schnittstelle zugeordnet wird. Nur auf dieser lässt sich ein Dialog-Fenster darstellen. Sollte die Fehlermeldung "Can't make new window [...]" kommen, dann musst du ggf. die Breite/Höhe des Dialogs anpassen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17620
Wohnort: Berlin
|
Ich bin mir nicht sicher, ob ich es richtig verstanden habe. Geht es um 3 Rechner, den, an dem Du arbeitest, den Quell- und den Zielrechner, oder nur um zwei und Du willst etwas vom Quellrechner zu Deinem hochladen (push, nicht runterladen - pull)? Zielrechner ist ja das Ziel des Kopiervorgangs. Der Rechner, von dem es kommt ist der Quellrechner, nicht der Rechner von dem Du kommst.
|
Sonie
(Themenstarter)
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
danke, passt so schon, es sind drei rechner. du hast mir aber damit sehr geholfen. vielen dank nochmal... zu früh gefreut, ich muss ja noch das ergebnis der auswahl in einer lokalen variable speichern, da kommt aber seitens ssh nix mehr zurück...
|
Sonie
(Themenstarter)
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
user_unknown schrieb: Ich bin mir nicht sicher, ob ich es richtig verstanden habe. Geht es um 3 Rechner, den, an dem Du arbeitest, den Quell- und den Zielrechner, oder nur um zwei und Du willst etwas vom Quellrechner zu Deinem hochladen (push, nicht runterladen - pull)? Zielrechner ist ja das Ziel des Kopiervorgangs. Der Rechner, von dem es kommt ist der Quellrechner, nicht der Rechner von dem Du kommst.
ich habe einen Quellrechner, vorkompilierte Pakete, die dort abgelegt sind, aber der Pfad ist nur bedingt scriptbar.
ich habe meinen Arbeitsplatz, von dem ich aus mit ssh die files auf meinen pc kopieren und dann auf´s Zielsystem bringen kann
ich habe einen Zielrechner, der blank installiert ist und außer ssh keine weitere verbindung erlaubt.
die rechner können nur über meinen arbeitsplatz kommunizieren. ein direkter tunnel ist nicht möglich.
|
Sonie
(Themenstarter)
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
Sonie schrieb: ich möchte auf einer anderen Maschine mittels SCP Dateien herunterladen und das scripten. für die Verbindung ist nur ssh/scp erlaubt, keine passphrasen. natürlich kann ich mich auf der zielmaschine anmelden und dann mit scp die entsprechenden files kopieren, meine idee ist, einen auswahl dialog auf der anderen maschine zu starten, mit rückgabe des dateinamens. also manuell
ssh zielrechner
cd .../verzeichnis
scp file ... zumeinemrechner
exit als Oberfläche würd ich gerne dialog benutzen, läßt sich per ssh auf die Zielmaschine schicken, wichtig dabei --stdout, damit dialog die Bildschirmausgabe richtig weiterleitet"
| password="Password"
source="zielmaschine" #oder IP
source_path="/opt/"
source_user="anwender"
# dialog zum auswählen einer Datei
FILE= $(sshpass -p $password ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -t $source_user@$source dialog --stdout --fselect "$source_path" "" 10 60 3>&1 1>&2 2>&3 )
# Datei kopieren mittels SCP
sshpass -p $password scp $source_user@$source/$FILE /tmp
|
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Auf korrektes "Qouting" hatte ich Dich schon im Nachbarstrang hingewiesen ... Hier "quotest" Du wieder, wo es gar nicht nötig ist: in den Zeilen 1-4 kommt nirgends ein Leerzeichen oder sowas vor - also: was sollen da die "Quotes" ?? Umgekehrt: theoretisch könnte in Zeile 9 $FILE" doch durchaus sowas enthalten, oder ? - dann gehört es auch "gequotet". In Zeile 7 hast Du es ja auch gemacht. Dort verstehe ich allerdings nicht, was für einen üblen Trick Du mit dem Leerzeichen nach dem "=" ziehst. Sowas erzeugt nämlich ganz wilde Effekte: (um nicht zu sagen: Sicherheitslücken) track@track:~$ file= $(date)
Do: Befehl nicht gefunden.
track@track:~$ echo $file
track@track:~$ file=$(date)
track@track:~$ echo $file
Do 1. Sep 12:39:08 CEST 2016 Du solltest mir anhand unseres Wiki bitte mal erklären, was in meinem 1. Beispiel geschieht ! - sonst glaube ich Dir nicht, dass Du weißt, was Du da machst. LG, track
|
Sonie
(Themenstarter)
Anmeldungsdatum: 1. Mai 2012
Beiträge: 135
Wohnort: Höchst im Odenwald
|
track schrieb: track@track:~$ file= $(date)
Do: Befehl nicht gefunden.
track@track:~$ echo $file track@track:~$ file=$(date)
track@track:~$ echo $file
Do 1. Sep 12:39:08 CEST 2016
}}}Du solltest mir anhand unseres Wiki bitte mal erklären, was in meinem 1. Beispiel geschieht ! - sonst glaube ich Dir nicht, dass Du weißt, was Du da machst.
Hallo Track, danke für den Hinweis, natürlich muss das Leerzeichen da raus. Ich hab auch schon ein paar mal gesagt, dass ich hier kein Copy und Paste verwenden kann, sondern die Zeilen neu abschreibe, da kann mir sowas beim blind tippen leider passieren.
Was Zeile 9 angeht, natürlich könnten dateinamen auch Leerzeichen beinhalten, müßte dann nicht auch IFS anders gesetzt werden?
Dennoch hoffe ich, dass vielleicht jemand mit einem ähnlichen Problem irgendwie geholfen werden kann, generell halte ich es immer für sehr bedenklich, code aus dem web zu übernehmen, ohne die funktionen zu kennen.
|