Ankündigung

Einklappen
Keine Ankündigung bisher.

zip funktioniert nicht in exec()

Einklappen

Neue Werbung 2019

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

  • zip funktioniert nicht in exec()

    Das hier funkt in Putty:
    Code:
    @ssh:/var/www/xy/html/Develop/Admin$ zip -r temp/backup1/files.zip files
    In php funktioniert dasselbe nicht:

    Code:
    $mysqldump = " mysqldump -u  --password=--all-databases > temp/backup1/test1.sql";  
    $tar = "tar cfvz temp/backup1/backup_".EngTODAY.".tar.gz temp/backup1/test1.sql";  $zip 
    = "zip -r temp/backup1/files.zip files";
    $html = exec($mysqldump);
    $html .= "<br>";
    $html .= exec($tar);
    $html .= "<br>";
    $html .= exec($zip);
    Die Domain zeigt auf den Admin Ordner wie oben. Der Ordner files liegt in Admin. $mysqldump und $tar werden erfolgreich ausgeführt. Aber das zip nicht. Woran kann das liegen?

  • #2
    Wie lautete die Fehlermeldung?

    Kommentar


    • #3
      Nix

      Kommentar


      • #4
        Wenns keine Fehlermeldung gibt, dann funktioniert ja alles. Oder du schaust einfach nicht richtig hin. In deinem Code zumindest ignorierst du jede Art von Fehler.

        Kommentar


        • #5
          Wenn ich $html ausgebe, erhalte ich

          temp/backup1/test1.sql\r

          Die sql Datei und die tar erscheinen, die Datei files.zip nicht.

          Kommentar


          • #6
            exec() hat noch einen zweiten und dritten Parameter. Diese solltest du auch verwenden.

            PHP-Code:
            exec($command ' 2>&1'$output$exitCode);

            if (
            $exitCode !== 0) {
                throw new 
            Exception("Error (" $exitCode ") on command '" $command "': " $output[0]);

            Kommentar


            • #7
              lässt dich das alles nicht voll nativ in php lösen, in ein shelscript schreiben oder als fertigen snip nutzen ?
              erster treffer:
              https://gist.github.com/micc83/fe6b5...6e2a3e9f633675

              zip funktioniert nicht in exec()
              mach nen issue auf.

              Kommentar


              • #8
                hellbringer
                Ah, das ergibt den Autoput 127. Laut Google sollte man den Pfade vom Root aus angeben, aber damit kriege ich es auch nicht hin.

                tomBuilder
                Der MySql Dump funkt ja und lässt sich wunderbar in einer Zeile schreiben. Und wenn man einmal mit exec angefangen hat, warum dann nicht auch damit zippen

                Das Script soll über Cronjob laufen. Kann man über php in Zeitprobleme kommen?

                mach nen issue auf.
                Was meinst Du damit?

                Kommentar


                • #9
                  Zitat von phpP Beitrag anzeigen
                  tomBuilder
                  Der MySql Dump funkt ja und lässt sich wunderbar in einer Zeile schreiben. Und wenn man einmal mit exec angefangen hat, warum dann nicht auch damit zippen

                  Das Script soll über Cronjob laufen. Kann man über php in Zeitprobleme kommen?

                  Was meinst Du damit?
                  https://manpages.debian.org/stretch/tar/tar.1.en.html
                  ein blick auf compressions options sollte nicht schaden, doppelt zippen hälrt besser gilt algemein nicht.
                  cornjob zeiprobleme ? die meisten cronjobs werden eh ausgeführt wenn die maschine nicht genutzt wird, eine sekundengenau ausführung ist eher selten.
                  über das in background setzen von cronjobs oder ähnlichem hat aber wohl auch der admin hier noch nchts gehört ....

                  was ich damit meine, deine ü berschrift ist fragwürdig, da ich einen unterschied zwischen
                  nicht funktionieren:
                  -> bug in der sprache -> den entwicklern der sprache melden oder selbst fixen
                  und bin wohl noch nicht in der lage zu benützen
                  -> docu lesen -> forumsbeitrag schreiben
                  sehe

                  Kommentar


                  • #10
                    Zitat von phpP Beitrag anzeigen
                    Ah, das ergibt den Autoput 127.
                    Und wie lautet die Fehlermeldung?

                    Zitat von phpP Beitrag anzeigen
                    Laut Google sollte man den Pfade vom Root aus angeben, aber damit kriege ich es auch nicht hin.
                    Absolute Dateipfade sollte man immer angeben.

                    Zitat von phpP Beitrag anzeigen
                    Das Script soll über Cronjob laufen. Kann man über php in Zeitprobleme kommen?
                    Wofür brauchst du dann überhaupt PHP? Warum kein Shell-Script erstellen?

                    Kommentar


                    • #11
                      Zitat von hellbringer Beitrag anzeigen
                      Wofür brauchst du dann überhaupt PHP? Warum kein Shell-Script erstellen?
                      Habe ich mich auch gerade gefragt, da dies die schnellere und einfachere Variante wäre das ganze abzufertigen.

                      Kommentar


                      • #12
                        Shell Script habe ich noch nie gemacht. Ich nehme an, dass geht nur auf einem Server und nicht in einem Shared Paket, wo diese Anwendung läuft?

                        Kommentar


                        • #13
                          Ich verstehe immer noch nicht was Du da zippst, und/oder wieso Du ein gezipptes tar archiv nochmal zippen willst.

                          Kommentar


                          • #14
                            Ich verstehe immer noch nicht was Du da zippst, und/oder wieso Du ein gezipptes tar archiv nochmal zippen willst.
                            Ich erzeuge einen DB Dump und will zusätzlich einen Ordner mit Dokumenten zippen.

                            Das mit den Dokumenten habe ich mittlerweile über php gelöst.

                            Was mich gerade zur Verzweiflung treibt:

                            Code:
                            mysqldump -u user --password= --all-databases | gzip > temp/backup2/2019-01-23_db_backup.zip
                            erzeugt zwar eine gezippte Datei, die kann ich dann aber weder über FileZilla noch mit php weiter verarbeiten. Obwohl die Datei in FileZilla angezeigt wird und 644 hat, wird die Meldung "Datei oder Verz. nicht gefunden" z.B. beim versuchten Runterladen ausgegeben.

                            Edit: sehe gerade in Putty, dass hinter den Dateien ein \r steht. Ist wohl ein Rechteproblem?

                            Kommentar

                            Lädt...
                            X