Karl Heinz: Grundlagen Cronjobs

Hallo,

ich habe ein paar Fragen zu Cronjobs. Bin diesbezüglich leider noch sehr unerfahren. Nun habe ich die Ehre einen Cronjob für einen Kunden einzurichten. Der Hoster des Kunden ist www.estugo.de. Für die Einrichtung des Cronjobs habe ich folgende Anleitung gefunden:

http://www.estugo.de/geplante-aufgabe-cronjob

Trotz der Anleitung bleiben einige Fragen offen, es wäre prima wenn Ihr mir weiterhelft:

In meinem Fall bewirkt der Cronjob, dass ausgehend von einem Online-Shop automatisch eine Export-Datei erstellt wird. Wie kann ich denn prüfen, ob der Cronjob tatsächlich ausgeführt wird sprich wie kann ich herausfinden, ob die Export-Datei tatsächlich einmal täglich, sowie im Cronjob angegeben erstellt wird? Hat die Export-Datei einen Zeitstempel aus welchem ich sehen kann wann die Export-Datei vom Cronjob erzeugt wurde?

Basierend auf dem Backend des Online-Shops (Gambio) habe ich mir die Cronjob URL generiert, die ich dann beim Hoster Estugo, so wie in der verlinkten Estugo Anleitung beschrieben, hinterlegt habe. Was ich nicht verstehe: Warum wird das seitens des Shop-Betreibers umständlich über die Cronjob URL, die ich beim Hoster eintragen muss, realisiert. Warum kann das Shop-System das regelmäßige Erstellen der Export-Datei nicht selbst übernehmen, dann könnte man auf das Generieren der Cronjob URL und das Eintragen dieser beim Hoster verzichten. Das wäre doch viel einfacher.

Aus welchem Grund muss vor der Cronjob URL noch "lynx –source" eingegeben werden. Grundsätzlich ist doch klar, dass die Cronjob URL im festgelegten Intervall ausgeführt werden muss, sprich „lynx –source“ könnte doch seitens des Hoster automatisch als Präfix angehangen werden, ohne dass ich dies umständlich manuell eingeben muss.

In der Anleitung steht „-source“ gibt den Quellcode an, könnt Ihr mir verraten, was genau damit gemeint ist. Nachfolgend mal die Cronjob URL. Wo in dieser URL soll denn der Quellcode sein?

http://www.<domäne-kunde>.de/request_port.php?module=CSV&action=export&token=8a3c6b7ffb6145470e8aa774d6bf44f4

akzeptierte Antworten

  1. Hi,

    In meinem Fall bewirkt der Cronjob, dass ausgehend von einem Online-Shop automatisch eine Export-Datei erstellt wird. Wie kann ich denn prüfen, ob der Cronjob tatsächlich ausgeführt wird sprich wie kann ich herausfinden, ob die Export-Datei tatsächlich einmal täglich, sowie im Cronjob angegeben erstellt wird? Hat die Export-Datei einen Zeitstempel aus welchem ich sehen kann wann die Export-Datei vom Cronjob erzeugt wurde?

    So wie jede Datei werden beim schreibenden Zugriff die entsprechenden Zeitstempel (creationtime, modificationtime ...) gesetzt. Warum glaubst Du, daß das bei der Export-Datei anders sein sollte?

    Was ich nicht verstehe: Warum wird das seitens des Shop-Betreibers umständlich über die Cronjob URL, die ich beim Hoster eintragen muss, realisiert.

    Warum fragst Du das nicht den Shop-Betreiber?

    Warum kann das Shop-System das regelmäßige Erstellen der Export-Datei nicht selbst übernehmen,

    Und wodurch sollte das ausgelöst werden, wenn nicht über den Cronjob?

    Aus welchem Grund muss vor der Cronjob URL noch "lynx –source" eingegeben werden.

    Vermutlich, weil damit der Browser lynx aufgeforder wird, die URL aufzurufen.

    Warum hier lynx statt wget verwendet werden soll, frag bitte denjenigen, der diese Vorgabe macht.

    Grundsätzlich ist doch klar, dass die Cronjob URL im festgelegten Intervall ausgeführt werden muss, sprich „lynx –source“ könnte doch seitens des Hoster automatisch als Präfix angehangen werden,

    angehängt, nicht angehangen.

    ohne dass ich dies umständlich manuell eingeben muss.

    Weil ein Cronjob auch was anderes sein kann als der Abruf einer URL.

    In der Anleitung steht „-source“ gibt den Quellcode an, könnt Ihr mir verraten, was genau damit gemeint ist.

    Frag denjenigen, der diese Anleitung geschrieben hat.

    M.W. gibt es an, welche Seite lynx beim Start laden soll (ist allerdings schon ewig her, daß ich lynx benutzt habe.

    cu,
    Andreas a/k/a MudGuard

  2. Hallo,

    ich muss mich demnächst auch mit cronjobs auf Server A beschäftigen, weil er Daten von Server B abholen und sichern soll.

    Warum kann das Shop-System das regelmäßige Erstellen der Export-Datei nicht selbst übernehmen, dann könnte man auf das Generieren der Cronjob URL und das Eintragen dieser beim Hoster verzichten. Das wäre doch viel einfacher.

    Wahrscheinlich kann jedes System eine Export-Datei erzeugen und ablegen. Ist aber überhaupt nicht hilfreich, wenn das System ausfällt, bzw. nicht erreichbar ist.

    Grundsätzlich unterscheide ich, ob ein System die Datensicherung "schieben" oder "ziehen" soll. Habe mich für das "Ziehen" entschieden, es ist variabler. Ein USB-Stick mit der Server-Software "XAMPP" kann jederzeit den Internet-Server erreichen, andersherum nicht.

    Linuchs

    1. Hallo und guten Tag,

      Grundsätzlich unterscheide ich, ob ein System die Datensicherung "schieben" oder "ziehen" soll. Habe mich für das "Ziehen" entschieden, es ist variabler. Ein USB-Stick mit der Server-Software "XAMPP" kann jederzeit den Internet-Server erreichen, andersherum nicht.

      Du solltest dabei aber nicht das Erzeugen der Datensicherung mit dem Abholen und Archivieren verwechseln. Wann ein System seine Daten (geräteintern) sichert, sollte es selber entscheiden. Wann diese bereitliegenden Daten dann abgeholt werden (Achtung Zugriffssicherheit, TLS, usw.) kann das archivierende System entscheiden.

      Praktischer Hinweis: Bei MySQL-Datenbanken ist es z.B. praktisch, den Server lokal geordnet herunterzufahren, die MySQL-Daten-Dateien schnell und komplett in ein anderes Verzeichnis zu kopieren und den Server wieder heraufzufahren. Offtime ist dadurch (bei realen Webanwendungen) releativ kurz.

      Anschließend können die kopierten Daten in aller Ruhe in ein targz verpackt werden und für die Abholung bereitgestellt werden.

      Grüße
      TS

      --
      es wachse der Freifunk
      http://freifunk-oberharz.de
  3. http://www.estugo.de/geplante-aufgabe-cronjob

    Merkwürdige Vorgehensweise. Gibt es keinen Zugang via ssh (Putty)? Cronjobs werden dann in der Linux-Shell mit crontab -e eingerichtet, Hilfe gibt es mit man 5 crontab.

    Einen Hoster ohne SSH-Zugang halte ich persönlich für unbrauchbar.

  4. ich habe ein paar Fragen zu Cronjobs. Bin diesbezüglich leider noch sehr unerfahren.

    Du scheinst da das Eine oder Andere durcheinander gebracht zu haben, schlimmer noch (und nimm's mir nicht übel): Ich habe den leisen Verdacht, dass dir das nötige Grundlagenwissen zur Computerbedienung fehlt.

    Ein cronjob bedeutet erst einmal nur, dass das System zu den angegebenen Zeiten ein beliebiges Programm startet.

    Falls du mit Windows arbeitest: cron ist vergleichbar mit der "Eingabeaufforderung" (kurz: cmd, manchmal aus DOS-Fenster o.ä. genannt, English: Shell), verbunden mit einer Zeitschaltuhr.

    Wie kann ich denn prüfen, ob der Cronjob tatsächlich ausgeführt wird

    Hat die Export-Datei einen Zeitstempel aus welchem ich sehen kann wann die Export-Datei vom Cronjob erzeugt wurde?

    Jede Datei führt mindestens das Datum der letzten Änderung, mithin mindestens ihrer des Erstellungszeitpunktes. Mit Verlaub, deine Frage ist ein wenig wunderlich – mit Dateien hast du schon mal zu tun gehabt?

    Möchtest du nicht jeden Tag nach dem Datum der Exportdatei gucken, könntest du auch ein Skript erstellen, das dir neben dem Dateiexport auch noch eine Mail schickt. Wie eingangs schon geschrieben: Ein cronjob kann alles sein, was man auch in der Eingabeaufforderung starten kann.

    Warum kann das Shop-System das regelmäßige Erstellen der Export-Datei nicht selbst übernehmen

    Das musst du diejenigen fragen, die das Shop-System programmiert haben.

    , dann könnte man auf das Generieren der Cronjob-URL und das Eintragen dieser beim Hoster verzichten.

    Es gibt keine "Cronjob-URLs".

    In der Anleitung, auf die du verwiesen hast, ist nur beispielhaft das Abrufen einer beliebigen Webseite mittels des Programms lynx beschrieben. Es steht doch eigentlich recht klar da:

    "Ein möglicher Befehl wäre zum Beispiel lynx -source http://www.domain.de/export.php" (Hervorhebung von mir.)

    Es zwingt dich niemand, deine Exportdatei über so einen Abruf zu erstellen. Gehört zum Shop-System ein Programm, das solche Exporte eigenständig erzeugen kann, steht es dir frei, dieses Programm direkt aufrufen zu lassen.

    Aus welchem Grund muss vor der Cronjob-URL noch "lynx –source" eingegeben werden.

    Weil in diesem Beispiel eine Webseite abgerufen werden soll. "lynx -source" macht genau dieses (lynx ist ein Webbrowser). Außer der Zeitsteuerung hat das nichts mit cronjobs zu tun, und vorsichtshalber nochmal: Es gibt keine "Cronjob-URL".

    Grundsätzlich ist doch klar, dass die Cronjob-URL im festgelegten Intervall ausgeführt werden muss, sprich „lynx –source“ könnte doch seitens des Hoster automatisch als Präfix angehangen werden

    Nein, ein cronjob ist nicht speziell zum Abrufen von Webseiten da. Das wird nur in diesem Beispiel so gemacht.

    In der Anleitung steht „-source“ gibt den Quellcode an, könnt Ihr mir verraten, was genau damit gemeint ist. Nachfolgend mal die Cronjob URL. Wo in dieser URL soll denn der Quellcode sein?

    lynx ist ein Webbrowser. -source ist ein Attribut, dass lynx beim Start mit auf den Weg gegeben wird und bewirkt, dass die angegebene URL nicht als Webseite am Bildschirm angezeigt, sondern ihr Inhalt ohne Änderung ausgegeben wird (bei einer Webseite wird also der HTML-Code 1:1, als Text ausgegeben).

    1. Hallo,

      Du scheinst da das Eine oder Andere durcheinander gebracht zu haben, schlimmer noch (und nimm's mir nicht übel): Ich habe den leisen Verdacht, dass dir das nötige Grundlagenwissen zur Computerbedienung fehlt.

      den Eindruck hatte ich beim Lesen auch ...

      Ein cronjob bedeutet erst einmal nur, dass das System zu den angegebenen Zeiten ein beliebiges Programm startet.

      Genau.

      Falls du mit Windows arbeitest: cron ist vergleichbar mit der "Eingabeaufforderung" (kurz: cmd, manchmal aus DOS-Fenster o.ä. genannt, English: Shell), verbunden mit einer Zeitschaltuhr.

      Ähm ... nein. Wenn du schon mit Windows vergleichst: cron ist in etwa das Pendant zum Taskplaner in Windows. Nur dass der ganz der Windows-Philosophie folgend vorwiegend GUI-orientiert ist.
      Und den Begriff DOS-Fenster wollen wir doch bitte vergessen. Die Windows-Kommandozeile hat mit DOS nicht viel zu tun. Das hatte sie zuletzt in Windows 98 bzw. dessen Facelift Windows ME.

      Jede Datei führt mindestens das Datum der letzten Änderung, mithin mindestens ihrer des Erstellungszeitpunktes. Mit Verlaub, deine Frage ist ein wenig wunderlich – mit Dateien hast du schon mal zu tun gehabt?

      ;-)

      Es zwingt dich niemand, deine Exportdatei über so einen Abruf zu erstellen. Gehört zum Shop-System ein Programm, das solche Exporte eigenständig erzeugen kann, steht es dir frei, dieses Programm direkt aufrufen zu lassen.

      Wenn das Shop-System die Möglichkeit bietet, würde ich das sogar vorziehen. Dann geht's nämlich aller Wahrscheinlichkeit nach auch ohne den Umweg über den Webserver und einen Browser.

      So long,
       Martin

      --
      Logik ist die Theorie, Chaos die Praxis.