befehl definieren im cronjob

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von doonot, 13.12.2007.

  1. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Ich habe hier ein kleines Problem, ich muss im cronjob einen befehl definieren, welcher alle 2 minuten aufgerufen werden soll. es wird ein script aufgerufen, ein kleines beispiel des befehles:

    Code:
    ./tpi_in_response_time.sh -d 071127 -e >/tmp/tpi_in_response_071127
    da ich nach dem script das datum via -d angebe, sucht er nur die files für das aktuelle datum, aber ich möchte das er es so macht:
    nimm das heutige datum und ziehe 2 minuten ab (dh. nur die einträge, welche in der letzten 2 minuten passiert sind). wie kann ich das machen? date -2min? oder so was in die richtung :)

    vielen dank 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. Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    Moin,

    wie denn? Wie wird gesucht?

    Code:
    #!/bin/bash
    TIMESTAMP=eval date +%s
    echo $TIMESTAMP
    
    Du möchtest glaube ich ganz zu Beginn des Scriptes einen Zeitstempel erzeugen und von dem 120 Sekunden abziehen.
     
  4. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    ich habe einmal gelesen, dass man es mit date -2min machen kann, jedoch weiss ch nicht wie das geht¨.

    wie ich ja geschrieben habe, muss ich all 2 minuten ein scirpt ausführen, welches die daten der letzten 2 minuten hohlt, darf aber nicht date selbst verändern. wisst ihr weiter?
     
  5. Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    ja und da war halt meine Idee, daß du zuerst einen sekundengenauen Timestamp machst und davon 120 abziehst. Das ist das Datum, ab dem du suchst....

    Bin ich da jetzt auf dem Holzweg?
     
  6. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    meinst du am anfang des scriptes einen timestamp der sagt datum minus 120 sekunden, und später, wenn ich den befehl eingebe anstatt date den timestamp nehme?

    mein befehl sieht ja so aus:
    Code:
    ./tpi_in_response_time.sh -d 071127 -e >/tmp/tpi_in_response_071127
    was würde dann anstatt -d 071127 kommen? und wie definiere ich den timestamp so, dass er minus 2 min rechnet?

    vielen dank
     
  7. #6 engywuk, 13.12.2007
    engywuk

    engywuk Grünschnabel

    Dabei seit:
    19.09.2007
    Beiträge:
    7
    Zustimmungen:
    0
    date -d '2 minutes ago'

    oder zum finden von Dateien die in den letzten zwei Minuten verändert wurden:

    find . -cmin -2 -print

    Grüße
    Engywuk
     
  8. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    date '2 minutes ago', das suche ich, aber stimmt der syntax so? kann ich das so schreiben?
     
  9. #8 Jabo, 13.12.2007
    Zuletzt bearbeitet: 13.12.2007
    Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    Der Vorschlag von engywuk macht den besseren Eindruck.

    Dein "Befehl" ist ja der Scriptaufruf und nicht der Befehl, den das Script absetzt.

    Mein Vorschlag war, die Sekunden im Moment des Scriptaufrufes zu nehmen
    Code:
    man date
    [...]
    %s     seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
    
    Davon wolltest du 2 Minuten = 120 Sekunden in die Vergangenheit rechnen, d.h. diese Zahl minus 120.

    Aber find -cmin kann das ja, also warum das Rad neu erfinden...

    [edit]
    Du übergibst ja das Datum? Das Script kann aber ja selber gucken, wie spät es ist bzw. find guckt beim Aufruf nach diesem Vorschlag. Du übergibst dann also gar kein -d sondern das passiert *im* Script, wie ich die Situation verstehe.
     
  10. #9 doonot, 13.12.2007
    Zuletzt bearbeitet: 13.12.2007
    doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    ich starte sozusagen ein script, welches mir zahlen in ein logfile schreibt. find -min.... klingt noch gut, aber kann ich das dann an den öffnungsbefehl des scriptes anhängen, da ich ja will das er mir nur die zahlen ins logfile schreibt die nicht älter als 2 minuten sind.

    ich habe uech ja den befehl schon mal reinkopiert, geht das mit dem?

    find . -cmin -2 -print finde ich bei mir gar nicht? stimmt das so?
     
  11. #10 engywuk, 13.12.2007
    Zuletzt bearbeitet: 13.12.2007
    engywuk

    engywuk Grünschnabel

    Dabei seit:
    19.09.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Wir reden hier wohl aneinander vorbei ...

    Die ursrüngliche Frage war: "da ich nach dem script das datum via -d angebe, sucht er nur die files für das aktuelle datum, aber ich möchte das er es so macht:
    nimm das heutige datum und ziehe 2 minuten ab (dh. nur die einträge, welche in der letzten 2 minuten passiert sind). wie kann ich das machen? date -2min? oder so was in die richtung"

    Um das heutige Datum zu nehmen und 2 Minuten abzuziehen eignet sich das "date -d '2 minutes ago'"; und "find" um die Files (Dateien!) zu finden, die in den letzten zwei Minuten erstellt bzw. geändert wurden.

    Von Zahlen war bisher irgendwie noch nicht die Rede, oder?
    Woran erkenne ich denn, wie "alt" die Zahlen sind?

    Und was bedeutet "find . -cmin -2 -print finde ich bei mir gar nicht? stimmt das so?" Lautet die Fehlermeldung "command not found" oder "bad option -cmin"?

    Grüße
    Engywuk
     
  12. #11 doonot, 13.12.2007
    Zuletzt bearbeitet: 13.12.2007
    doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    also damit ihr genau wisst, was ich meine mache ich ein beispiel:

    Code:
    ./tpi_in_response_time.sh -d 071127 -e >/tmp/tpi_in_response_071127
    ich mache den aufruf für das script, gebe dort das datum an (entweder man macht es schon hier, oder später)

    das system generiert mir folgende ausgabe in ein file hinein:

    Code:
    Timestamp: Wed, 12 Dec 2007 23:59:57 GMT ID: F.CEE.TPI-IN.spmbs03p.1_19743476454 Request-Type: TPI-SMS-MT Diff time: 990
    Timestamp: Thu, 13 Dec 2007 00:00:02 GMT ID: F.CEE.TPI-IN.spmbs03p.1_19743476455 Request-Type: TPI-SMS-MT Diff time: 535
    da drin steht dann die zeit oder was auch immmer (man könnte auch mtime nehmen, nicht)

    später nehme ich mit awk die letzte zeile (reine zahlen heraus und arbeite mit denen).

    jetzt ist wohl die frage, wo man das hineinsetzen soll?

    es steht als fehlermeldung folgendes:

    find: bad option -cmin
    find: path-list predicate-list
     
  13. Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    Das glaube ich auch... aber am ehesten, weil doonot darauf beharrt, daß er die Tatsache, daß die Dateien 2 Minuten alt sind, im Scriptaufruf übergeben will. Statt deinen Vorschlägen zu folgen und das Script auf die Uhr gucken zu lassen.

    Suchen wir Dateien? Ist deren Erstellungszeit das Kriterium? Dann hat engywuk die Antwort ja gegeben.
     
  14. #13 engywuk, 13.12.2007
    engywuk

    engywuk Grünschnabel

    Dabei seit:
    19.09.2007
    Beiträge:
    7
    Zustimmungen:
    0
    WAS soll man WOREIN setzten?

    Grüße
    Engywuk
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 doonot, 13.12.2007
    Zuletzt bearbeitet: 13.12.2007
    doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    wenn der cronjob den befehl all 2 minuten laufen lässt, dan sind da alle *dinge* drin, die bei -d xxxxxx definiert wurden sind. ich will, dass dort defniert wird, das nur die genommen werden, von den letzten 2 minuten

    was schlussendlich in diesem file drin ist, habe ich gepostet.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    ob du find oder date '2 minutes ago' brauchen willst, ob du es beim script aufruf defnieren willst, oder erst dann, wenn du das erstellte file (mit einträgen drin, unteranderem auch zeit und datum) fertig erstellt hast..
     
  17. #15 engywuk, 13.12.2007
    engywuk

    engywuk Grünschnabel

    Dabei seit:
    19.09.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Wenn mit 071127 07 Uhr 11 Minuten und 27 Sekunden gemeint ist, dann suchsts du folgendes:

    Code:
    ./tpi_in_response_time.sh -d `date '+%H%M%S'` -e >/tmp/tpi_in_response_`date '+%H%M%S'`
    Grüße
    Engywuk
     
Thema:

befehl definieren im cronjob

Die Seite wird geladen...

befehl definieren im cronjob - Ähnliche Themen

  1. Centosbefehle

    Centosbefehle: Hallo ich habe ein Centos 7.2.15.11 image (mit Hdclone von Miray gemacht) Ich möchte das Image auf eine existierende Ubuntu installation...
  2. Kurzzusammenfassung der Befehle und Progr. für die shell

    Kurzzusammenfassung der Befehle und Progr. für die shell: Hallo zusammen, bei der Verbesserung eines meiner Scripte bin ich nach ausführlicher Recherche auf den Befehl (Prog?) "file" gestossen. Dieser...
  3. Befehlssequenz

    Befehlssequenz: Hallo zusammen, Ich bin ein Anfänger der Unix-Sprache und versuche gerade eine Befehlssequenz zusammen zu schustern, welche mir alle laufenden...
  4. Befehl beim Session beenden

    Befehl beim Session beenden: Hallo allerseits, ich habe vor ein Verzeichnis auf meinem Webserver zu verschlüsseln. Ich will, sobald ich darauf zugreifen muss/will eine...
  5. Zeile für Zeile auslesen und Befehl ausführen

    Zeile für Zeile auslesen und Befehl ausführen: Hallo Zusammen Ich habe folgendes Problem: Ich möchte eine Datei zeilenweise auslesen und jede Zeile als Pattern für grep verwenden. Die...