Christopher: Remote Script ausfuehren und Ergebnis erhalten

Hallo,

welche Moeglichkeiten habe ich, um von Server A aus ein Script auf Server B auszufuehren, und dessen Ergebnis zu bekommen?
Geht so was auch mittels SCP?

Vielen Dank.

Grusz,
Christopher

  1. Tach!

    welche Moeglichkeiten habe ich, um von Server A aus ein Script auf Server B auszufuehren, und dessen Ergebnis zu bekommen?
    Geht so was auch mittels SCP?

    SCP ist Kopieren. Ich wüsste nicht, dass das losgelöst von einem Benutzer geht, der sich per SSH anmelden kann. Und mit dem kannst du auch SSH machen.

    dedlfix.

    1. Hallo,

      SCP ist Kopieren. Ich wüsste nicht, dass das losgelöst von einem Benutzer geht, der sich per SSH anmelden kann. Und mit dem kannst du auch SSH machen.

      Das ist alles nicht so meine Gebiet.. daher die Erwaehnung von SCP.

      Hintergrund ist, dass ich auf Server B ein Deploy-Script erstelle, welches sich Daten aus der SQL-Datenbank von Server A holen muss, um sie in die DB auf Server B zu importieren.
      Und da ich die SQL-DB von Server A nicht von remote zugreifbar machen moechte, wuerde ich sie mir gerne ueber ein Bash-Script manuell holen.
      Daher dachte ich mir jetzt auf Server A ein Script zu Verfuegung zu stellen, welches die entsprechenden Daten zurueckliefert, welche ich dann auf Server B empfange.

      Aber ginge das auch so, dass ich aus der Bash (Server B) mich mit SSH auf Server A verbinde, um dort dann direkt an die DB zu gelangen (entsprechende Konfiguration vorausgesetzt)? Dann muesste ich innerhalb des Bash-Scriptes (Server B) die Rueckgabewerte des SSH-Zugriffes in eine Variable speichern koennen, so dass ich sie dann auf DB B importieren kann.

      Waere das ein vernuenftiger Ansatz, ist das moeglich?

      Vielen Dank,
      Christopher

      1. Hallo,

        faellt mir gerade ein:
        Ich koennte doch auf Server A ein Script erstellen, welches ich mit SSH ausfuehre. Dieses Script generiert dann ein Datei mit entsprechendem Inhalt. Und von Server B hole ich mir dann diese Datei mittels SCP.
        Ist das deiner Meinung ein sauberer Ansatz?

        Grusz,
        Christopher

        1. Tach!

          Ich koennte doch auf Server A ein Script erstellen, welches ich mit SSH ausfuehre. Dieses Script generiert dann ein Datei mit entsprechendem Inhalt. Und von Server B hole ich mir dann diese Datei mittels SCP.
          Ist das deiner Meinung ein sauberer Ansatz?

          Du brauchst ja sowieso ein offenes Loch und da kannst du Port 22 für SSH und SCP verwenden. Du kannst die Ausgabe auch gleich aus der SSH-Verbindung lesen, was aber sicher nicht sehr hübsch zu parsen ist, weil noch Text vom Verbindungsaufbau etc. dabei ist. EIne Datei lässt sich einfacher am Stück öffnen und verarbeiten.

          dedlfix.

          1. Hallo,

            Du brauchst ja sowieso ein offenes Loch und da kannst du Port 22 für SSH und SCP verwenden.

            Das stimmt.. aber muss natuerlich nicht gerade der Standard-Port sein :)

            Du kannst die Ausgabe auch gleich aus der SSH-Verbindung lesen, was aber sicher nicht sehr hübsch zu parsen ist, weil noch Text vom Verbindungsaufbau etc. dabei ist. EIne Datei lässt sich einfacher am Stück öffnen und verarbeiten.

            Ja, so werde ich es nun machen.

            Danke dedlfix!

            Grusz,
            Christopher

            1. Tach,

              Du brauchst ja sowieso ein offenes Loch und da kannst du Port 22 für SSH und SCP verwenden.
              Das stimmt.. aber muss natuerlich nicht gerade der Standard-Port sein :)

              den Port zu verändern, bringt keine zusätzliche Sicherheit, dafür ist ein Portscan viel zu schnell durchgeführt. Port knocking könnte die Existenz eines SSH-Daemons aber verbergen.

              mfg
              Woodfighter

          2. Hi,

            Du kannst die Ausgabe auch gleich aus der SSH-Verbindung lesen, was aber sicher nicht sehr hübsch zu parsen ist, weil noch Text vom Verbindungsaufbau etc. dabei ist.

            Hmm...
            $ ssh localhost 'date'
            gibt bei mir nur die gewünschte Ausgabe. Dabei ist natürlich mein SSH-Schlüssel auf localhost hinterlegt ohne Passphrase.

            Jetzt gehts ohne zu testen weiter:
            $ ssh localhost 'mysqldump -D meinedb' | mysql -D meinedbkopie
            sollte das alles gemeinsam tun. Wenn man ein wenig Bandbreite sparen will, geht vielleicht auch (ungetestet)
            $ ssh localhost 'mysqldump -D meinedb | gzip' | gunzip | mysql -D meinedbkopie

            Ich habe das aber mal anders umgesetzt. Ich habe auf ServerA ein bash-Skript geschrieben, welches die dumps erstellt hat und gzipped abgelegt hat, inkl. rotate, so dass nur eine bestimmte Anzahl vorhanden war. Das Verzeichnis mit den dumps habe ich dann per rsync auf meinen Backup-Server gesynct (inkl. rsync --remove-missing, um veraltete dumps zu entfernen, falls das gewünscht ist). Die Dumps wurden nur nach manueller Interaktion auch eingespielt, aber das kann man ja auch wieder automatisieren. Der Vorteil davon ist, dass zu Backup-Zwecken immer einigermaßen aktuelle Dumps vorhanden sind, und zwar nicht nur der letzte, sondern der letzten x Stunden.

            Bis die Tage,
            Matti

            1. Tach!

              Du kannst die Ausgabe auch gleich aus der SSH-Verbindung lesen, was aber sicher nicht sehr hübsch zu parsen ist, weil noch Text vom Verbindungsaufbau etc. dabei ist.
              $ ssh localhost 'date'
              gibt bei mir nur die gewünschte Ausgabe. Dabei ist natürlich mein SSH-Schlüssel auf localhost hinterlegt ohne Passphrase.

              Der "Trick", um keine unnötige Ausgabe zu erhalten, ist vermutlich die Angabe des Kommandos. Wenn man die weglässt, bekommt man jedenfalls ein paar Ausgaben der Shell. Andererseits kann man auf dem Server für die zu verwendende Kennung (eine dedizierte empfiehlt sich da) in der SSH-Konfiguration auch gleich ein bestimmtes Kommando hinterlegen, dann kann nur dies und nichts anderes ausgeführt werden.

              dedlfix.

  2. welche Moeglichkeiten habe ich, um von Server A aus ein Script auf Server B auszufuehren, und dessen Ergebnis zu bekommen?
    Geht so was auch mittels SCP?

    rsync

    Gruß
    ChrisCross

    1. Tach,

      welche Moeglichkeiten habe ich, um von Server A aus ein Script auf Server B auszufuehren, und dessen Ergebnis zu bekommen?
      Geht so was auch mittels SCP?

      rsync

      rsync kann zwar effizient Daten kopieren, aber keine Scripte ausführen (außer man gibt eines als Shell an, was aber nicht unbedingt sinnvoll wäre).

      mfg
      Woodfighter

      1. rsync kann zwar effizient Daten kopieren, aber keine Scripte ausführen (außer man gibt eines als Shell an, was aber nicht unbedingt sinnvoll wäre).

        Davon, dass das alles gleichzeitig ausgeführt werde sollte, habe ich wohl nicht erkannt. Meines Wissens nach funktioniert das aber mit SCP ebenfalls nicht.

        Gruß
        Chris