Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
jmrozanec__cron-utils_CVE-2021-41269_9-1-5 — Java-Bibliothek zum Parsen, Validieren, Migrieren und Beschreiben von Cron-Ausdrücken mit Unterstützung für mehrere Formate (Unix, Quartz, Spring) und menschenlesbarer, lokalisierter Ausgabe. | Kitploit
Tools/GitHubGitHub/shoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5
Allgemeine DienstprogrammeScripting & AutomatisierungDienstprogramme & FrameworksLernen & Bildung
GitHubshoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5

jmrozanec__cron-utils_CVE-2021-41269_9-1-5

Java-Bibliothek zum Parsen, Validieren, Migrieren und Beschreiben von Cron-Ausdrücken mit Unterstützung für mehrere Formate (Unix, Quartz, Spring) und menschenlesbarer, lokalisierter Ausgabe.

Repository anzeigen
4vor 10 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

cron-utils

Wir definieren Cron-Ausdrücke. Und unterstützen sie.

cron-utils ist eine Java-Bibliothek zum Definieren, Parsen, Validieren und Migrieren von Cron-Ausdrücken sowie zum Erhalten von menschenlesbaren Beschreibungen für diese. Das Projekt folgt der Semantic Versioning Convention, stellt OSGi-Metadaten bereit und verwendet die Apache-2.0-Lizenz.

Gitter Chat Build Status Quality Gate

Download

cron-utils ist im Maven Central-Repository verfügbar.

root@kitploit:~
<dependency>
    <groupId>com.cronutils</groupId>
    <artifactId>cron-utils</artifactId>
    <version>9.2.1</version>
</dependency>

Für Android-Entwickler: cron-utils 7.0.0 setzt Android 26+ voraus. Für ältere Android-Versionen erwägen Sie die Verwendung von cron-utils 6.0.6. Wenn Sie ScheduleExpression aus Java EE verwenden, sollte diese als Laufzeitabhängigkeit bereitgestellt werden.

Aktuelle Entwicklung

Wir arbeiten derzeit daran, die Codebasis auf JDK 16 zu aktualisieren, um sicherzustellen, dass sie bei Veröffentlichung vollständig mit JDK 17 kompatibel sein wird.

Derzeit entwickeln wir eine neue Generation von Cron-Deskriptoren mithilfe neuronaler Übersetzung! Jede Art von Beiträgen ist willkommen: von Hilfe bei der Datensatzerstellung bis hin zum Training von Modellen für maschinelles Lernen und Hilfsprogrammen, um sie zu laden! Wenn Sie interessiert sind, folgen Sie bitte Issue #3

Funktionen

  • Beliebige Cron-Ausdrücke erstellen: Sie können Ihr eigenes Cron-Format definieren! Unterstützte Felder sind: Sekunde, Minute, Stunde, Tag des Monats, Monat, Tag der Woche, Jahr.
  • Sie können das letzte Feld als optional kennzeichnen!
  • Unterstützt alle Cron-Sonderzeichen: * / , -
    • Auch die nicht standardkonformen Zeichen L, W, LW, '?' und # werden unterstützt!
  • Unterstützt Cron-Erweiterungen / Aliase: @yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly, @reboot
  • Ausgabe in ein lokalisiertes, menschenlesbares Format (Chinesisch, Englisch, Deutsch, Griechisch, Indonesisch, Japanisch, Koreanisch, Polnisch, Rumänisch, Spanisch, Swahili und Türkisch werden vollständig unterstützt. Niederländisch, Französisch, Italienisch, Portugiesisch und Russisch werden grundlegend unterstützt).
  • Parse- und Beschreibungsprozess sind entkoppelt: einmal parsen und mit dem Ergebnis arbeiten!
  • Erstellen Sie Cron-Ausdrücke mit CronBuilder:
    • kein Bedarf, sich Felder und Einschränkungen für jeden Cron-Anbieter zu merken.
    • Crons werden vom Cron-Anbieter entkoppelt: Sie können jederzeit in ein anderes Format exportieren.
  • Prüfen Sie, ob Cron-Ausdrücke äquivalent sind.
  • Fassen Sie mehrere Cron-Ausdrücke zu einem einzigen zusammen!
  • Validieren Sie, ob Cron-String-Ausdrücke zu einer Cron-Definition passen.
  • Konvertieren Sie Crons zwischen verschiedenen Cron-Definitionen: Wenn Sie Ausdrücke migrieren müssen, kann CronMapper Ihnen helfen!
  • Vordefinierte Definitionen für die folgenden Cron-Bibliotheken werden bereitgestellt:
    • Unix
    • Cron4j
    • Quartz
    • Spring. Wir unterstützen zwei Definitionen: vor v5.3 und ab v5.3.
  • Ermitteln Sie den Zeitpunkt der letzten/nächsten Ausführung sowie die Zeit seit der letzten Ausführung/die Zeit bis zur nächsten Ausführung.
  • Berechnen Sie die Anzahl der Ausführungen zwischen zwei Tagen und vergleichen Sie Crons anhand ihrer Ausführungshäufigkeiten.
  • Ermitteln Sie die Anzahl der Wochentage zwischen zwei Daten, unter Berücksichtigung verschiedener Wochenendregelungen sowie Feiertagen.
  • Müssen Sie Konstanten zwischen verschiedenen Cron-/Zeit-Bibliotheken abbilden? Verwenden Sie ConstantsMapper.

Verwendungsbeispiele

Im Folgenden präsentieren wir einige Beispiele. Diese und weitere finden Sie in einem Beispiel-Repository, das wir erstellt haben, um die cron-utils-Bibliotheken vorzustellen!

Cron-Definitionen erstellen

root@kitploit:~
// Define your own cron: arbitrary fields are allowed and last field can be optional
CronDefinition cronDefinition =
    CronDefinitionBuilder.defineCron()
        .withSeconds().and()
        .withMinutes().and()
        .withHours().and()
        .withDayOfMonth()
            .supportsHash().supportsL().supportsW().and()
        .withMonth().and()
        .withDayOfWeek()
            .withIntMapping(7, 0) //we support non-standard non-zero-based numbers!
            .supportsHash().supportsL().supportsW().and()
        .withYear().optional().and()
        .instance();

// or get a predefined instance
cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(QUARTZ);

Einen Cron-Ausdruck erstellen

root@kitploit:~
// Create a cron expression. CronMigrator will ensure you remain cron provider agnostic
import static com.cronutils.model.field.expression.FieldExpressionFactory.*;

Cron cron = CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ))
    .withYear(always())
    .withDoM(between(SpecialChar.L, 3))
    .withMonth(always())
    .withDoW(questionMark())
    .withHour(always())
    .withMinute(always())
    .withSecond(on(0))
    .instance();
// Obtain the string expression
String cronAsString = cron.asString(); // 0 * * L-3 * ? *

Parsen

root@kitploit:~
// Create a parser based on provided definition
CronParser parser = new CronParser(cronDefinition);
Cron quartzCron = parser.parse("0 23 * ? * 1-5 *");

... sogar Multi-Cron-Ausdrücke! Wie wäre es, mehrere Crons in eine einzige Zeile zu packen? Anstatt 0 0 9 * * ? *, 0 0 10 * * ? *, 0 30 11 * * ? * und 0 0 12 * * ? * zu schreiben, können wir es in 0 0|0|30|0 9|10|11|12 * * ? * zusammenfassen.

Beschreiben

root@kitploit:~
// Create a descriptor for a specific Locale
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);

// Parse some expression and ask descriptor for description
String description = descriptor.describe(parser.parse("*/45 * * * * ?"));
// Description will be: "every 45 seconds"

description = descriptor.describe(quartzCron);
// Description will be: "every hour at minute 23 every day between Monday and Friday"
// which is the same description we get for the cron below:
descriptor.describe(parser.parse("0 23 * ? * MON-FRI *"));

Migrieren

root@kitploit:~
// Migration between cron libraries has never been so easy!
// Turn cron expressions into another format by using CronMapper:
CronMapper cronMapper = CronMapper.fromQuartzToCron4j();

Cron cron4jCron = cronMapper.map(quartzCron);
// and to get a String representation of it, we can use
cron4jCron.asString();//will return: 23 * * * 1-5

Validieren

root@kitploit:~
cron4jCron.validate()

Zeit von/bis zur Ausführung berechnen

root@kitploit:~
// Get date for last execution
ZonedDateTime now = ZonedDateTime.now();
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * ? *"));
ZonedDateTime lastExecution = executionTime.lastExecution(now);

// Get date for next execution
ZonedDateTime nextExecution = executionTime.nextExecution(now);

// Time from last execution
Duration timeFromLastExecution = executionTime.timeFromLastExecution(now);

// Time to next execution
Duration timeToNextExecution = executionTime.timeToNextExecution(now);

Konstanten zwischen Bibliotheken abbilden

root@kitploit:~
// Map day of week value from Quartz to JodaTime
int jodatimeDayOfWeek =
        ConstantsMapper.weekDayMapping(
                ConstantsMapper.QUARTZ_WEEK_DAY,
                ConstantsMapper.JODATIME_WEEK_DAY
        );

Datums- und Zeitformatierung für Menschen!

Verwenden Sie htime – menschenlesbare Datums-/Zeitformatierung für Java! Obwohl diese Funktionalität nicht im selben JAR enthalten ist, handelt es sich um ein cron-utils-Projekt, das Sie nützlich finden könnten.

root@kitploit:~
// You no longer need to remember "YYYY-MM-dd KK a" patterns.
DateTimeFormatter formatter = 
	    HDateTimeFormatBuilder
		    .getInstance()
		    .forJodaTime()
		    .getFormatter(Locale.US)
		    .forPattern("June 9, 2011");
String formattedDateTime = formatter.print(lastExecution);
// formattedDateTime will be lastExecution in "dayOfWeek, Month day, Year" format

cron-utils-CLI

Wir bieten eine einfache CLI-Schnittstelle, um cron-utils direkt von der Konsole aus zu verwenden, ohne ein neues Projekt schreiben zu müssen! Die CLI ist ein Satellitenprojekt, das unter cron-utils-cli verfügbar ist.

  • Verwendung: java -jar cron-utils.jar com.cronutils.cli.CronUtilsCLI --validate -f [CRON4J|QUARTZ|UNIX] -e '<cron expression>'

  • Beispiel: java -jar cron-utils.jar com.cronutils.cli.CronUtilsCLI --validate -f UNIX -e '* 1 * * *'

Wenn Sie ein eigenständiges JAR möchten, ohne das 'cp' zu benötigen, erstellen Sie ein Uber-JAR mit:

root@kitploit:~
mvn assembly:assembly -DdescriptorId=jar-with-dependencies

Starten Sie dann cli-utils (im Verzeichnis target erstellt) mit:

root@kitploit:~
java -jar cron-utils-<version>-jar-with-dependencies.jar com.cronutils.cli.CronUtilsCLI --validate -f [CRON4J|QUARTZ|UNIX] -e '<cron expression>'`

Mitwirken & Unterstützen!

Beiträge sind willkommen! Sie können mitwirken, indem Sie

  • dieses Repository mit einem Stern markieren!
  • neue Funktionen anfragen oder hinzufügen. Schauen Sie sich unsere Roadmap an!
  • vorhandenen Code verbessern: z. B. genauere Beschreibungsfälle bereitstellen
  • testen
  • Dokumentation verbessern
  • Übersetzungen bereitstellen, um neue Locales zu unterstützen
  • Vorschläge einbringen und Fehler melden
  • die Botschaft verbreiten
  • uns mitteilen, wie Sie es verwenden! Wir freuen uns darauf, Sie in unserem Wiki zu listen!

Schauen Sie auf unserer Seite vorbei! Statistiken zum Projekt finden Sie in unserem OpenHUB-Profil.

Weitere cron-utils-Projekte

Sie sind eingeladen, die folgenden cron-utils-Projekte zu besuchen und zu verwenden:

  • htime: Eine Java-Bibliothek, die es Menschen leicht macht, ein Datum zu formatieren. Sie müssen sich keine Zeichen für die Datums- und Zeitformatierung mehr merken: Schreiben Sie einfach ein Beispiel, und Sie erhalten den passenden Formatierer.
  • cron-utils-spring: Eine Java-Bibliothek zur Beschreibung von Cron-Ausdrücken in menschenlesbarer Sprache im Spring-Framework unter Verwendung von cron-utils.
  • cron-utils-cli: cron-utils-Funktionen, die über eine CLI verfügbar gemacht werden.
  • cron-utils-sisyphus: Ein Scala-Scheduler, der mehrere Cron-Notationen unterstützt.
  • cron-utils-scheduler: Ein Java-Job-Scheduler, der auf der cron-utils-Bibliothek basiert.
Tool herunterladen