Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jmrozanec__cron-utils_CVE-2021-41269_9-1-5 | 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

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
منذ 9 أشهرلم تتم المراجعة بعد

cron-utils

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

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

Gitter Chat Build Status Quality Gate

التحميل

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

root@kitploit:~
<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

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

إنشاء تعبير cron

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

التحليل

root@kitploit:~
// 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 * * ? *

الوصف

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

الترحيل

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

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

root@kitploit:~
cron4jCron.validate()

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

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

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

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

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

استخدم htime - تنسيق التاريخ والوقت القابل للقراءة البشرية لجافا! على الرغم من أن هذه الوظيفة غير مضمّنة في نفس ملف الجرة، إلا أنها مشروع من مشاريع cron-utils قد تجده مفيدًا.

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

نوفّر واجهة CLI بسيطة لاستخدام cron-utils مباشرة من وحدة التحكم، دون كتابة مشروع جديد! إنّ CLI مشروع تابع، متاح على cron-utils-cli

  • الاستخدام: java -jar cron-utils.jar com.cronutils.cli.CronUtilsCLI --validate -f [CRON4J|QUARTZ|UNIX] -e '<cron expression>'

  • مثال: java -jar cron-utils.jar com.cronutils.cli.CronUtilsCLI --validate -f UNIX -e '* 1 * * *'

إذا كنت تريد ملف jar مستقلاً دون الحاجة إلى 'cp'، فأنشئ ملف jar موحّد (uber jar) باستخدام:

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

ثم شغّل cli-utils (المبني في مجلد target) باستخدام:

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

ساهم وادعم!

المساهمات مرحّب بها! يمكنك المساهمة عن طريق

  • وضع نجمة على هذا المستودع!
  • طلب ميزات جديدة أو إضافتها. تحقق من خارطة الطريق الخاصة بنا!
  • تحسين الكود الموجود: مثال: تقديم حالات وصف أكثر دقة
  • الاختبار
  • تحسين التوثيق
  • تقديم ترجمات لدعم مناطق (locales) جديدة
  • تقديم الاقتراحات والإبلاغ عن الأخطاء
  • نشر الخبر
  • إخبارنا كيف تستخدمه! نتطلع إلى إدراجك في الويكي الخاص بنا!

تفقّد صفحتنا! للحصول على إحصائيات حول المشروع، يمكنك زيارة ملفنا الشخصي على OpenHUB.

مشاريع cron-utils الأخرى

يسعدنا أن تزور وتستخدم مشاريع cron-utils التالية:

  • htime: مكتبة جافا لتسهيل تنسيق التاريخ على البشر. لم تعد بحاجة إلى تذكّر رموز تنسيق التاريخ والوقت: فقط اكتب مثالًا، وستحصل على المنسّق المناسب.
  • cron-utils-spring: مكتبة جافا لوصف تعبيرات cron بلغة بشرية قابلة للقراءة في إطار Spring، باستخدام cron-utils.
  • cron-utils-cli: ميزات cron-utils متاحة عبر CLI.
  • cron-utils-sisyphus: مجدول Scala يدعم تدوينات cron متعددة.
  • cron-utils-scheduler: مجدول مهام جافا قائم على مكتبة cron-utils.
تنزيل الأداة