Über SSH auf einem entfernten Rechner in eine Datei reinschreiben

Post Reply
Message
Author
Martin K.

Über SSH auf einem entfernten Rechner in eine Datei reinschreiben

#1 Post by Martin K. »

Hallo!!

Wieder mal ein Problem an dem ich irgendwie hängen bleib. Evtl. könnt ihr mir ja helfen...

Und zwar greif ich per ssh auf einen anderen Rechner zu und will auf diesem in eine
Datei reinschreiben.
Beide Rechner sind über public und private-Key authentifiziert...also keine Passworteingabe erforderlich.

Das ganze soll in einem Aufruf passieren, da es Bestandteil meines php-codes ist. Also
irgendwas wo es keine Bestätigung braucht oder so...
Dem ssh Befehl kann ich ja direkt ein Kommando mitgeben das auf dem jeweiligen Rechner ausgeführt werden soll:

Code: Select all

ssh benutzer@192.168.0.1 /etc/init.d/httpd status
würde mir z.B. den Status des http-Dienstes auf dem Rechner zurückgeben.
Wenn ich aber nach der IP-Adresse ein "echo "test" > /home/benutzer/testdatei.txt" mache passiert gar nichts. Auch wenn ich die Rechte der Datei auf "benutzer" gesetzt habe...

Gibts vielleicht ne bessere Methode in eine Datei auf einem anderen Rechner Werte reinzuschreiben. Hintergrund der Sache ist, dass ich über meinem php-Code Werte in eine Datei auf einem entfernten Rechner reinschreiben will...und ein Cronjob der auf dem Rechner läuft je nachdem wie sich der Inhalt der Datei ändert, darauf reagiert.

Hoffe das ganze ist wieder ein bißchen verständlich.

Danke euch für euche Hilfe im Voraus!!

Gruß
Martin K.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

Re: Über SSH auf einem entfernten Rechner in eine Datei reinschreiben

#2 Post by jochen »

Martin K. wrote:Wenn ich aber nach der IP-Adresse ein "echo "test" > /home/benutzer/testdatei.txt" mache passiert gar nichts. Auch wenn ich die Rechte der Datei auf "benutzer" gesetzt habe...
Gar nichts? Kann ich fast nicht glauben. Hast Du mal auf der lokalen Maschine nachgesehen, ob da plötzlich /home/benutzer/testdatei.txt existiert? :-)

Ich gehe davon aus, dass Dein Aufruf so aussah:

Code: Select all

ssh benutzer@192.168.0.1 echo "test" > /home/benutzer/testdatei.txt
Was aber nur die Standardausgabe des ssh-Aufrufs umlenkt und nicht auf der entfernten Maschine die des echo-Kommandos...
Schreibs lieber so:

Code: Select all

ssh benutzer@192.168.0.1 "echo "test" > /home/benutzer/testdatei.txt"
Wenn Du die inneren Anführungszeichen weglassen kannst (sow wie hier), solltest Du das auch tun. Ansonsten wie im Beispiel oben die Anführungszeichen mittels \ quoten.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Alex.MH

#3 Post by Alex.MH »

Wenn Du die inneren Anführungszeichen weglassen kannst (sow wie hier), solltest Du das auch tun. Ansonsten wie im Beispiel oben die Anführungszeichen mittels \ quoten.

Oder alles in Single-Ticks setzen:
ssh benutzer@192.168.0.1 'echo "test" > /home/benutzer/testdatei.txt'
Gruss,
Alex

Post Reply