php und mysql in einer shell und als cron

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von gabriel, 19.06.2009.

  1. #1 gabriel, 19.06.2009
    gabriel

    gabriel Grünschnabel

    Dabei seit:
    19.06.2009
    Beiträge:
    4
    Zustimmungen:
    0
    moin,
    ich stehe grad etwas auf dem schlauch. ich möchte in einer datei xy.sh anweisungen für einen mysqldump und zur ansteuerung eines php skriptes unterbringen und das dann als cron alle 30 min laufen lassen.
    ich leite das skript mit

    #!/bin/bash
    mysqlimport ...

    ein, was auch für mysql bestens geht. jedoch bekomme ich es nicht dazu, das auch php ausgeführt wird (wenn ich das skript manuell starte geht alles bestens). nach dem mysqlimport soll es das skript convert.php ausführen, was ich so einleite:

    /usr/bin/php /opt/xy/convert.php

    auch die alternative mit #! scheint nicht zu gehen.
    kann mir jemand sagen, was ich falsch mache?

    danke im voraus
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    eigentlich sollte so alles laufen - gibt's denn auch eine Fehlermeldung?

    Klingen tut's nach einem Problem im Environment...
     
  4. #3 gabriel, 19.06.2009
    gabriel

    gabriel Grünschnabel

    Dabei seit:
    19.06.2009
    Beiträge:
    4
    Zustimmungen:
    0
    nein leider nicht. es wird weder ein fehler, noch ein erfolg angezeigt. was mir aber insgesamt noch nicht ganz klar ist, es scheint ja eine differenz zu geben, zu der ausgabe, wenn man manuell in der shell einen befehl ausführt und zwischen dem, was ein cronjob macht. gibts da irgendwelche regeln und spezifikationen. ich find da eher wenig zu.
     
  5. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    Der Hauptunterschied ist eben das Environment - lass Dir von cron mal die Ausgabe von set / env in eine Datei ausgeben und vergleiche das mal mit der Ausgabe an der Login-Shell.

    Evtl. liegt's auch nur am ausführenden Verzeichnis - bei cron sollte man ded. immer mit kompletten Pfaden arbeiten, cd konsequent durchziehen, ...

    Und eben auch ein paar Debug-Marker und Ausgaben setzen.

    Wenn möglich, poste doch mal das komplette Shell-Script und relevante Teile aus dem php-Code - Fallstricke erkennt man dann meist recht schnell...
     
  6. death

    death Grünschnabel

    Dabei seit:
    18.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Ort:
    Bavaria
    Hallo,

    ich weiß nicht ob es etwas damit zu tun hat,
    aber ich rufe in einem Shell-Skript eine PHP-Datei wie folgt auf:
    php -f /pfad/zur/datei.php

    Das läuft auch als cronjob.
     
  7. #6 gabriel, 19.06.2009
    gabriel

    gabriel Grünschnabel

    Dabei seit:
    19.06.2009
    Beiträge:
    4
    Zustimmungen:
    0
    die cronausgabe werd ich mal testen

    die sh datei:

    Code:
    #!/bin/bash
    
    mysqlimport --user=meinuser --password=meinpass --delete --default-character-set=latin1 --fields-terminated-by=';' --fields-enclosed-by='"' --fields-escaped-by='\' --lines-terminated-by='\n' --ignore-lines=1 meinedb meinecsv.csv;
    
    /usr/bin/php /opt/xy/convert.php
    der phpcode zu convert.php:
    Code:
    <?
    require_once("/opt/xy/include/config.inc.php");
    
    $select1 = "select auftragid, statusdatum, statustexteid, partnerid, internstatus, text, quittungsgeber from DFUESTATUS";
    $sql1 = mysql_query($select1);
    
    while ($row1 = mysql_fetch_object ($sql1))
    {
    $jahr = substr($row1->statusdatum,6,4);
    $bindestr = "-";
    $monat = substr($row1->statusdatum,3,2);
    $tag = substr($row1->statusdatum,0,2);
    $datum = "$jahr$bindestr$monat$bindestr$tag";
    
    $stunde = substr($row1->statusdatum,10,3);
    $minute = substr($row1->statusdatum,14,3);
    $doppelp = ":";
    $zeit = "$stunde$doppelp$minute";
    
    $gesamt = "$datum $zeit";
    
    $abfrage = "insert into DFUESTATUSNEU (auftragid,statusdatum, statustexteid, partnerid, internstatus, text, quittungsgeber) values ('$row1->auftragid','$gesamt','$row1->statustexteid', '$row1->partnerid', '$row1->internstatus', '$row1->text', '$row1->quittungsgeber')";
    $ergebnis = mysql_query($abfrage);
    }
    ?>
    
    @death:
    das ist auch eine gute idee..werd ich mal testen
     
  8. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    wo liegt denn die meinecsv.csv?

    Bist Du Dir sicher, daß der Import sauber durchläuft?
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 gabriel, 19.06.2009
    Zuletzt bearbeitet: 19.06.2009
    gabriel

    gabriel Grünschnabel

    Dabei seit:
    19.06.2009
    Beiträge:
    4
    Zustimmungen:
    0
    die liegt auch in einem verzeichnis (sorry hatte pfad beim posting gelöscht) import funktioniert 100% damit. habe ich an den gestiegenen datensätzen gesehen in der tabelle.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    was ich nicht verstehe ist, das ich genau das gleiche problem auch bekomme, wenn ich ein mysql statement versuche über einen cron aus der datei ausführen zu lassen. mysqldump funktioniert aber mysql nicht...bei manuellem shellaufruf gehts aber wieder.

    mysql -umeinuser -pmeinpass --database=meinedb --execute="delete from meinetabelle";
     
  11. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    Hallo gabriel,

    wo liegt denn dein mysql: /usr/bin oder /opt/lampp/bin ?
    Versuche es mal mit den vollen Pfaden.
    Gruss zst
     
Thema:

php und mysql in einer shell und als cron

Die Seite wird geladen...

php und mysql in einer shell und als cron - Ähnliche Themen

  1. Abfrage von Daten aus einer MySQL DB über ein Shell Script

    Abfrage von Daten aus einer MySQL DB über ein Shell Script: Hallo, folgendes Problem: - ich soll per Script Daten aus meiner DB holen Wie funktioniert das genau? habe schon was von JISQL gehört?...
  2. Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung

    Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung: Hallo, suche einen Freelancer für einen Webdienst... mit obigen Kenntnissen! Bitte Stundensatz mit Kurzbeschreibung mitteilen. NOCH WAS: Also...
  3. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  4. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  5. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...