1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Script starten mit SQL?

Discussion in 'Web-Know-how für die Homepage' started by salim_aliya, Jan 29, 2009.

Thread Status:
Not open for further replies.
  1. salim_aliya

    salim_aliya Halbes Megabyte

    Hallo Leute,
    ich habe mal eine ungewöhnliche Frage:

    Ich habe eine MySQL Datenbank, in die ein PHP Script aus einem anderen Server manchmal Einträge macht. Ich möchte jetzt, dass bei jedem Eintrag, ein shell Script gestartet wird mit einem parameter von einem bestimmten Feld.

    Ist so etwas möglich? Gäbe es evtl. andere Ansätze das Script zu starten?
    Danke im Vorraus
     
  2. -nixnick-

    -nixnick- Halbes Megabyte

    du willst das shellscript auf dem server starten, wo mysql läuft, richtig?
    dann könntest du entweder an dem mysql server rumpfuschen oder das ganze durch ein php script schleusen, was auf dem server mit mysql läuft, die angaben an den mysql weitergibt und dann das shellscript startet. oder du lässt auf deinem mysql-server einen ssh-daemon laufen, der durch das php-script auf server 1 gesteuert wird(ssh zu steuern wird dabei aber kompliziert, möglicherweise gibt es da bibliotheken. telnet wäre zu unsicher.)
     
  3. salim_aliya

    salim_aliya Halbes Megabyte

    Na, geht eben nicht, auf dem SQL server sind alle Ports gesperrt außer der MySQL Port. Wenn es einen Eintrag gibt, muss das Script aufgerufen werden. Mit PHP kann man da nichts machen.

    meine Frage war ja, ob SQL selber was machen kann?
     
  4. kalweit

    kalweit Hüter der Glaskugel

    mySQL selbst ist nichts anderes als ein "dummer" Datenspeicher. Ansatz: du prüfst regelmäßig von außen, ob sich der Index der Tabelle verändert hat (ggf. ein "auto_increment" Feld einfügen, um eine eindeutige fortlaufende Zuordnung zu haben), wenn ja, Aktion ausführen, wenn nein, in x Sekunden/Minuten wieder prüfen. Besser wäre natürlich, wenn das eintragende Script, dein Script gleich mit anschiebt.
     
  5. salim_aliya

    salim_aliya Halbes Megabyte

    Genau DAS habe ich sehr lange versucht, hat aber nicht geklappt.

    Es handelt sich um ein Perl Script, genauer um ein Modul eines Deamons, der bei einem Ereigniss Einen Insert Befehl ausführt, unzwar in einer eval Schleife. Ich habe dort innerhalb und auch außerhalb der eval schleife meine befehle hinzugefügt, genauer eine exec() anweisung, die ein shell script aufruft. Aber entweder wird der Befehl ignoriert oder das Perl Script stürzt dauernd ab (In der Log steht dann alle zwei minuten could not connect with MySQL Server, sehr strange):bahnhof:

    Dann kam die Idee, dass evtl. von Server, der den SQL Einträg empfängt evtl. was tun kann, aber so wie es aussieht -> no way.

    Was kann ich noch tun?
    Danke für Antwroten

    PS: Schön dich wieder zu sehen kalweit :D
     
    Last edited: Jan 29, 2009
  6. kalweit

    kalweit Hüter der Glaskugel

    Wie sieht der gesamte Befehl aus? exec selbst beendet das aktuelle Perl-Script. Eventuell bist du mit system() besser bedient.
     
  7. salim_aliya

    salim_aliya Halbes Megabyte

    Jop, dass hat geklappt, danke kalweit :D
     
Thread Status:
Not open for further replies.

Share This Page