Hallo
Ich erstelle gerade ein Programm mit welche ich Dokumente auf einem Ubuntu Server prüfe. Nun frage ich mich, wie es möglich ist, dass ich eine Datei auf dem Server lokal mit einem Texteditor öffnen und auch abspeichern kann, ähnlich als ob das Dateisystem eingebunden wäre.
SSH Key ist erstellt, also anmelden ohne Passwort ist möglich.
Ach ja, es soll ein grafischer Editor genutzt werden wie gedit oder ähnliche.
Datei auf Server local über SSH bearbeiten mit Texteditor
Also ich möchte es ja aus einem Python Skript öffnen, klar mit subprocess z.B. soch davor muss ich die Datei ja verfügbar haben. Also einbinden, dafür ist dein genanntes Toll ja schon mal sehr gut.Sirius3 hat geschrieben:Das ist eher eine Off-Topic-Frage, weil sie nichts mit Python zu tun hat. Nutze doch sshfs.
Auch habe ich ___ gefunden. Damit kann ich auch auf ein entferntes Dateisystem über SSH zugreifen. Doch wie soll ich die Datei dann an den Editor leiten. Evtl. doch erst mit subprocess das Dateisystem einbinden.
Hier jedenfalls meine Lösung:
Geholfen hat mir auch dieses Skript (sshfs mount tool (Python recipe)): http://code.activestate.com/recipes/573 ... ount-tool/
Code: Alles auswählen
# create mountpoint
mountpoint = "/tmp/mp1/"
if not os.path.exists(mountpoint):
os.makedirs(mountpoint)
sshfs = "%s@%s:/" % (self.user, self.ip)
# mount
status = os.system ('sshfs -o uid=%d "%s" "%s"' % (os.getuid(), sshfs, mountpoint))
#edit file
filepath ="/tmp/mp1/tmp/newtext"
os.system("xed %s" % filepath)
os.system("fusermount -u %s" % mountpoint)
@martinjo: wie immer, `os.system` ist veraltet und sollte durch `subprocess` ersetzt werden. Das macht auch vieles einfacher.
Code: Alles auswählen
# create mountpoint
mountpoint = "/tmp/mp1/"
if not os.path.exists(mountpoint):
os.makedirs(mountpoint)
sshfs = "%s@%s:/" % (self.user, self.ip)
filepath = os.path.join(mountpoint, "tmp", "newtext")
# mount
subprocess.call(['sshfs', '-o', 'uid=%d' % os.getuid(), sshfs, mountpoint])
#edit file
subprocess.call(['xed', filepath])
subprocess.call(['fusermount', '-u', mountpoint])
-
- User
- Beiträge: 168
- Registriert: Montag 9. Mai 2016, 09:14
- Wohnort: Berlin
Hallo,
vielleicht hast du die Möglichkeit X11 Forwarding mittels SSH zu nutzen.
Ich verbinde mich mit MobaXTerm durch SSH auf einen SLES Server
und rufe dann einfach Sublime Text Editor auf.
So kann ich direkt von meinem Arbeitsplatz aus auf dem Server programmieren.
Und ich brauche mir keine Gedanken machen wegen der Synchronisation.
vielleicht hast du die Möglichkeit X11 Forwarding mittels SSH zu nutzen.
Ich verbinde mich mit MobaXTerm durch SSH auf einen SLES Server
und rufe dann einfach Sublime Text Editor auf.
So kann ich direkt von meinem Arbeitsplatz aus auf dem Server programmieren.
Und ich brauche mir keine Gedanken machen wegen der Synchronisation.
So wirklich zu verstehen ist das nicht.
Ich bearbeite meine Dateien immer in einer gescreenten SSH- Session.
Wenn du das unbedingt local machen willst, ist sshfs schon die erste Wahl.
Dann solltest du aber autossh verwenden.
Damit umgehst du die Verbindungsabbrüche.
Oder, falls du auch auf dem Serve wirklich installieren kannst, mosh.
Ich bearbeite meine Dateien immer in einer gescreenten SSH- Session.
Wenn du das unbedingt local machen willst, ist sshfs schon die erste Wahl.
Dann solltest du aber autossh verwenden.
Damit umgehst du die Verbindungsabbrüche.
Oder, falls du auch auf dem Serve wirklich installieren kannst, mosh.