Seite 1 von 1

Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 06.05.2022, 18:12
von lukasim
Hallo,
ich starte meine Dumps über regelmäßige cronjobs, dazu verwende ich cron-job.org.
Die Dumps werden auch korrekt erstellt, allerdings ist der Output von MyOOS Dumper für den cronjob service zu lang, was dazu führt, dass der job dort mit einem Fehler beendet wird. Das wiederum führt nach einigen Ausführungen zur Deaktivierung des cronjobs...
Gibt es eine Möglichkeit, den Output der bei Aufruf über einen cronjob zurückgegeben wird, abzuschalten?

Folgende Info findet sich dazu in den FAQ von cron-job.org:
What should I keep in mind when developing my cron-controlled scripts?
You should design your scripts in a way that they send as little data as possible, ideally just a short status message at the end of the execution, e.g. "OK" — or simply nothing. In case your script is written in PHP and needs more than 30 seconds of run-time, you can use the following trick to let it continue to execute in the background: Use the PHP function ignore_user_abort(true) to tell PHP to continue the script execution after disconnection.
Danke,
Lukas

Re: Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 06.05.2022, 21:15
von r23
Hallo,

die Zielen mit
PrintOut
in

~/crondump.pl

löschen...

wenn man das "gewünschte" o.k. haben möchte, die Zeile

Code: Alles auswählen

    PrintOut("#EOS (End of script)<hr></body></html>");
nach

Code: Alles auswählen

    PrintOut("OK");
oder

Code: Alles auswählen

    PrintOut("");
oder löschen / auskommentieren

Code: Alles auswählen

    #PrintOut("....");
oder https://www.cronjob.de/ verwenden

Schönes Wochenende

Ralf

Re: Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 06.05.2022, 21:59
von r23
Hallo,

die Funktion PrintOut erzeugt auch die Log-Files ... somit ist die erste Idee sicherlich keine gute...


Wenn man in der Zeile 95 $cron_printout

Code: Alles auswählen

$cron_printout = 1;
auf 0 ändert

Code: Alles auswählen

$cron_printout = 0;
müsste die HTML-Ausgabe deaktiviert sein, wenn ich die Zeilen ab 776 richtig interpretiere.

Code: Alles auswählen

        if($cron_printout==1) 
        {
            #save current autoflush-setting
            local ($oldbar) = $|;
            
            #save current output filehandle and change it to STDOUT
            $cfh = select (STDOUT);

            #set autoflush on
            $| = 1;
            
            #remove html-tags
            if($html_output==0) 
            {
                $print_out =~ s/<(.*?)>//gi;
            }
            
            print $print_out;
            
            #TODO don't print <br> with the last printout (-> wrong html-syntax)
            if ($html_output==1){ print "<br>\n"; } else { print "\n"; };
            
            #restore old autoflush-setting
            $| = $oldbar;
            
            #set default output back to old filehandle
            select ($cfh);
        }


Re: Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 06.05.2022, 22:03
von lukasim
Wenn man in der Zeile 95 $cron_printout auf 0 ändert
die ist bei mir auf 0, leider wird trotzdem html ausgegeben...

Re: Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 07.05.2022, 00:47
von r23
Hallo,

stimmt :( in Zeile 248 wird es erneut eingeschaltet

Code: Alles auswählen

if ($html_output==1) { $cron_printout=0; }; # overwrite output if HTML-Output is activated

dazu kommt, dass man der Perl Script in PrintHeader Zeile 719 weitere Ausgaben startet.

in WriteToFile Zeile 1102 werden auch noch Punkte ausgegeben.

Hier ein geändertes Perl Script.
https://www.oos-shop.de/service/crondump.txt


Ausgabe ist hier OK

Schönes Wochenende

Ralf

Re: Cronjob schlägt fehl wegen zu langem output von MyOOS Dumper

Verfasst: 07.05.2022, 00:50
von r23
PS unter

Konfiguration => Cronjob ist die Textausgabe bei mir zusätzlich deaktiviert.