Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jmrozanec__cron-utils_CVE-2021-41269_9-1-5 — مكتبة جافا لتحليل والتحقق من صحة وترحيل ووصف تعبيرات cron مع دعم تنسيقات متعددة (Unix وQuartz وSpring) وإخراج قابل للقراءة البشرية حسب اللغة. | Kitploit
أدوات/GitHubGitHub/shoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5
أدوات عامةالبرمجة النصية والأتمتةالأدوات والمكوناتالتعلم والتعليم
GitHubshoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5

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

مكتبة جافا لتحليل والتحقق من صحة وترحيل ووصف تعبيرات cron مع دعم تنسيقات متعددة (Unix وQuartz وSpring) وإخراج قابل للقراءة البشرية حسب اللغة.

عرض المستودع
36منذ 0 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

cron-utils

نحن نعرّف جداول cron. وندعمها.

cron-utils هي مكتبة جافا لتعريف جداول cron وتحليلها والتحقق من صحتها وترحيلها، بالإضافة إلى الحصول على أوصاف بشرية قابلة للقراءة لها. يتبع المشروع اتفاقية الإصدارات الدلالية، ويوفّر بيانات تعريفية لـ OSGi ويستخدم ترخيص Apache 2.0.

Gitter Chat Build Status Quality Gate

التحميل

cron-utils متوفرة في مستودع Maven central.

<dependency>
    <groupId>com.cronutils</groupId>
    <artifactId>cron-utils</artifactId>
    <version>9.2.1</version>
</dependency>

بالنسبة لمطوّري Android، تفترض cron-utils 7.0.0 استخدام Android 26+؛ أما بالنسبة لإصدارات Android الأقدم، ففكّر في استخدام cron-utils 6.0.6. إذا كنت تستخدم ScheduleExpression من Java EE، فيجب توفيره كاعتماديّة وقت تشغيل.

التطوير الحالي

نعمل حاليًا على تحديث قاعدة الشيفرة البرمجية نحو JDK 16، لضمان التوافق الكامل مع JDK 17 عند إصداره.

نعمل الآن على تطوير جيل جديد من واصفات cron باستخدام الترجمة العصبية! أي نوع من المساهمات مرحّب به: بدءًا من المساعدة في توليد مجموعات البيانات وصولًا إلى تدريب نماذج تعلّم الآلة والأدوات المساعدة لتحميلها! إذا كنت مهتمًا، فيرجى متابعة القضية #3

الميزات

  • إنشاء تعبيرات cron عشوائية: يمكنك تعريف صيغة cron خاصة بك! الحقول المدعومة هي: الثانية، الدقيقة، الساعة، يوم الشهر، الشهر، يوم الأسبوع، السنة.
  • يمكنك جعل الحقل الأخير اختياريًا!
  • يدعم جميع الأحرف الخاصة بـ cron: * / , -
    • الأحرف غير القياسية L وW وLW و'?' و# مدعومة أيضًا!
  • يدعم امتدادات/ألقاب cron: @yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly, @reboot
  • طباعة بتنسيق بشري قابل للقراءة خاص بالمنطقة (locale) (الصينية، الإنجليزية، الألمانية، اليونانية، الإندونيسية، اليابانية، الكورية، البولندية، الرومانية، الإسبانية، السواحلية، والتركية مدعومة بالكامل. الهولندية، الفرنسية، الإيطالية، البرتغالية والروسية لديها دعم أساسي).
  • عمليتا التحليل والوصف منفصلتان: حلّل مرة واحدة وتعامل مع النتيجة!
  • أنشئ تعبيرات cron باستخدام CronBuilder:
    • لا حاجة لتذكّر الحقول والقيود لكل مزوّد cron.
    • تصبح جداول cron منفصلة عن مزوّد cron: يمكنك في أي وقت التصدير إلى صيغة أخرى.
  • تحقق مما إذا كانت تعبيرات cron متكافئة.
  • ادمج تعبيرات cron متعددة في تعبير واحد!
  • تحقق مما إذا كانت تعبيرات cron النصية تطابق تعريف cron.
  • حوّل جداول cron بين تعريفات cron المختلفة: إذا كنت بحاجة إلى ترحيل التعبيرات، فقد يساعدك CronMapper!
  • يتم توفير تعريفات معرّفة مسبقًا لمكتبات cron التالية:
    • Unix
    • Cron4j
    • Quartz
    • Spring. نحن ندعم تعريفين: قبل v5.3 ومن v5.3 فصاعدًا.
  • الحصول على وقت آخر/تالي تنفيذ، وكذلك الوقت منذ آخر تنفيذ/الوقت حتى التنفيذ التالي.
  • حساب عدد مرات التنفيذ بين يومين، ومقارنة جداول cron بناءً على ترددات تنفيذها.
  • الحصول على عدد أيام الأسبوع بين تاريخين، مع مراعاة سياسات عطلة نهاية الأسبوع المختلفة وكذلك العطلات الرسمية.
  • هل تحتاج إلى تعيين الثوابت بين مكتبات cron/الوقت المختلفة؟ استخدم ConstantsMapper.

أمثلة الاستخدام

فيما يلي نعرض بعض الأمثلة. يمكنك العثور على هذا وغيره في مستودع أمثلة أنشأناه لعرض مكتبات cron-utils!

إنشاء تعريفات cron

// 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);

إنشاء تعبير cron

// 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 * ? *

التحليل

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

... حتى تعبيرات cron المتعددة! ماذا عن دمج عدة جداول cron في سطر واحد؟ بدلاً من كتابة 0 0 9 * * ? * و0 0 10 * * ? * و0 30 11 * * ? * و0 0 12 * * ? * يمكننا تضمينها في 0 0|0|30|0 9|10|11|12 * * ? *

الوصف

// 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 *"));

الترحيل

// 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

التحقق من الصحة

cron4jCron.validate()

حساب الوقت من/إلى التنفيذ

// 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);

تعيين الثوابت بين المكتبات

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

تنسيق التاريخ والوقت للبشر!

تنزيل الأداة