PHP Code in einer Bash Datei ausführen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Code in einer Bash Datei ausführen?

    Hallo PHPler,

    ich habe nun auch schon danach gegoogelt aber so richtig nichts gefunden was für mich aufklärend wäre, oder aber ich habe nicht richtig verstanden was da geschrieben stand.

    Und zwar habe ich mir ein DB Backup Script geschrieben was auch super ohne Probleme funktioniert, von daher habe ich keine PHP Coding Frage oder Problem. Nun aber habe ich mit einem Bekannten diskutiert der mir nun zu verstehen gab, für eine gewisse Datengröße geht das Script ohne Probleme, aber was wenn nun die Datenmenge so groß ist das der PHP Timeout eintritt bevor das Script fertig abgearbeitet ist weil es zu lange dauert, dann wird kein vernünftiger Dump gemacht. Nun man könnte das von Hand aus ausführen, dann wüsste ich wie ich das machen muss ohne Problem, aber ich lasse das Script von einem Cronjob anstoßen, somit fällt die Möglichkeit das mit Get und einem Refresh bis alles gemacht ist leider flach.

    Also dachte ich mir ich schreibe den Code in eine Bash Datei und schubse die mit dem Cronjob an so wird das Script dann unabhängig vom PHP Timeout ausgeführt und der Dump wird bis zum Ende ausgeführt. Nur habe ich nun nichts wirklich hilfreiches gefunden wie ich das mit der Bash Datei anstelle und ob in der Bash Datei dann der Code wirklich so ausgeführt wie bei einer herkömmlichen Weise ein PHP Script auszuführen.

    Könnt ihr mir vielleicht da auf die Sprünge helfen da mehr Einblick zu bekommen und das zu verstehen wie das dann mit einer Bash Datei abläuft und wie man die richtig ausführt?

    Vielen Dank für eure Mühe Mfg litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

  • #2
    Also dachte ich mir ich schreibe den Code in eine Bash Datei und schubse die mit dem Cronjob an so wird das Script dann unabhängig vom PHP Timeout ausgeführt und der Dump wird bis zum Ende ausgeführt. Nur habe ich nun nichts wirklich hilfreiches gefunden wie ich das mit der Bash Datei anstelle und ob in der Bash Datei dann der Code wirklich so ausgeführt wie bei einer herkömmlichen Weise ein PHP Script auszuführen.
    Den "PHP Timeout" nennst du ja nicht umsonst so. Er wird von PHP verursacht. Und wer soll dein Script ausführen, vermutlich der PHP Parser. Da sehe ich also keine Chance um den (seinen) Timeout herumzukommen.

    Wie eine Bash-Datei dein Problem lösen soll, kann ich ehrlich gesagt nicht nachvollziehen.

    Kommentar


    • #3
      Mein Bekannter gab mir den Tipp, der hat das mal bei einem newsletter Script gesehen, da gabs ne Bash Datei die ausgeführt wurde und da gehen sehr viele Daten raus und griff da kein Timeout. Wie gesagt wenn das Script nur handisch ausgeführt werden sollte wäre das kein Problem für mich das umzusetzen, aber das soll eben durch einen Cronjob ausgeführt werden. Und da steht eben die Gefahr das der Timeout greift und ein unvollständiges Backup gemacht wird.

      Wenn die Idee mit der bash Datei nicht bracuhbar ist, wäre ich für eine Idee eines anderen Weges dankbar den Timeout aus dem Weg zu gehen, dass heist nicht das ich Code von euch haben will, sondern nur eventuell einen anderen Weg. Ich dachte mir auch schon das eventuell über ein C Programm zu machen aber das wird denke ich kein Hoster zulassen oder?

      Danke Gruß litter
      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
      http://www.lit-web.de

      Kommentar


      • #4
        Handelt es sich nur um Webspace oder hast du z.b root zugriff zu dem server? Weil dann könntest du den Dump ja auch direkt über die Kommandozeile per Cron Job machen lassen ohne php. Das würde dann in etwa so aussehen:
        mysqldump --password your_pw --opt --all-databases > pfad_wo_das_backup_hin_soll.sql
        http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

        Das wird aber wohl bei reinem webspace nicht gehen.
        Zuletzt geändert von 2Bad4You; 25.07.2010, 14:48.

        Kommentar


        • #5
          Es handelt sich um Webspace in jedem Fall wo ich das Script einsetzen will.
          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
          http://www.lit-web.de

          Kommentar


          • #6
            Hallo,

            set_time_limit hilft nicht?

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Hallo,

              set_time_limit hilft nicht?

              Gruß,

              Amica
              Ja das hilft so sicher, nur ist da das Problem das, dass nicht jeder Hoster zulässt. Meines Wissens nach sogar die wenigsten wenn es sich um ein kleines Webspace Packet handelt. Weil wenn ich set_time_limit auf 0 setze, dann gibts keine Laufzeiteinschränkung und ich denke das wird den meisten Hostern nicht wirklich passen.
              Zuletzt geändert von litterauspirna; 25.07.2010, 17:58.
              Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
              http://www.lit-web.de

              Kommentar


              • #8
                Zitat von litterauspirna Beitrag anzeigen
                Weil wenn ich set_time_limit auf 0 setze, dann gibts keine Laufzeiteinschränkung und ich denke das wird den meisten Hostern nicht wirklich passen.
                Das mag sein, aber du musst es ja nicht gleich auf 0 setzen – evtl. reicht es ja auch, den Timeout durch wiederholte Aufrufe dieser Funktion immer wieder zu verschieben, z. B. innerhalb einer Schleife. Ob das der Hoster in diesem Fall mitmacht, müsste man aber trotzdem ausprobieren.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Wie bekommen die Hoster das eigentlich mit das man bei einem Script das set_time_limit auf 0 setzt? In meinem Fall wäre es ja eh nur das eine Script und kein anderes.
                  Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                  http://www.lit-web.de

                  Kommentar


                  • #10
                    Bash: PHP: PHP auf der Kommandozeile - Manual


                    Wie bekommen die Hoster das eigentlich mit das man bei einem Script das set_time_limit auf 0 setzt?
                    Entweder verbieten sie die Funktion, oder setzen im Apache einen Timeout und der meuchelt dann das Script.

                    Große Provider (z.B. Strato) meucheln User Software nach 30(?) Sekunden. Deren Solaris kann das.
                    Wir werden alle sterben

                    Kommentar

                    Lädt...
                    X