Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
jmrozanec__cron-utils_CVE-2021-41269_9-1-5 — Java 라이브러리로, 크론 표현식을 파싱, 검증, 마이그레이션 및 설명하며 여러 형식(Unix, Quartz, Spring)을 지원하고 사람이 읽을 수 있는 로케일별 출력을 제공합니다. | Kitploit
도구/GitHubGitHub/shoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5
General Purpose UtilitiesScripting & AutomationUtilities & FrameworksLearning & Education
GitHubshoucheng3/jmrozanec__cron-utils_cve-2021-41269_9-1-5

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

Java 라이브러리로, 크론 표현식을 파싱, 검증, 마이그레이션 및 설명하며 여러 형식(Unix, Quartz, Spring)을 지원하고 사람이 읽을 수 있는 로케일별 출력을 제공합니다.

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
410개월 전아직 검토되지 않음
공유

cron-utils

우리는 크론을 정의합니다. 그리고 그것들을 지원합니다.

cron-utils는 크론을 정의, 파싱, 검증, 마이그레이션하고 사람이 읽을 수 있는 설명을 제공하는 Java 라이브러리입니다. 이 프로젝트는 시맨틱 버저닝 규약을 따르며, OSGi 메타데이터를 제공하고 Apache 2.0 라이선스를 사용합니다.

Gitter 채팅 빌드 상태 품질 게이트

다운로드

cron-utils는 Maven 중앙 저장소에서 사용할 수 있습니다.

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 사용을 고려하세요. Java EE의 ScheduleExpression을 사용하는 경우 런타임 종속성으로 제공해야 합니다.

현재 개발 상황

코드베이스를 JDK 16으로 업데이트하여 JDK 17이 출시될 때 완전히 호환되도록 작업 중입니다.

이제 신경망 번역을 사용하여 새로운 차세대 cron 설명자를 개발 중입니다! 데이터셋 생성, 머신러닝 모델 훈련 및 로드 유틸리티 등 모든 종류의 기여를 환영합니다! 관심이 있으시면 #3 이슈를 참조해 주세요.

기능

  • 임의의 cron 표현식 생성: 나만의 cron 형식을 정의할 수 있습니다! 지원되는 필드는 초, 분, 시, 일, 월, 요일, 년입니다.
  • 마지막 필드를 선택 사항으로 지정할 수 있습니다!
  • 모든 cron 특수 문자 지원: * / , -
    • 비표준 문자 L, W, LW, '?' 및 #도 지원합니다!
  • cron 확장/별칭 지원: @yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly, @reboot
  • 로케일별 사람이 읽을 수 있는 형식으로 출력 (중국어, 영어, 독일어, 그리스어, 인도네시아어, 일본어, 한국어, 폴란드어, 루마니아어, 스페인어, 스와힐리어, 터키어 완전 지원. 네덜란드어, 프랑스어, 이탈리아어, 포르투갈어, 러시아어는 기본 지원).
  • 파싱과 설명 과정이 분리됨: 한 번 파싱하고 결과를 사용하여 작업하세요!
  • CronBuilder를 사용하여 cron 표현식 빌드:
    • 각 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:~
// 나만의 cron 정의: 임의 필드 허용 및 마지막 필드 선택 가능
CronDefinition cronDefinition =
    CronDefinitionBuilder.defineCron()
        .withSeconds().and()
        .withMinutes().and()
        .withHours().and()
        .withDayOfMonth()
            .supportsHash().supportsL().supportsW().and()
        .withMonth().and()
        .withDayOfWeek()
            .withIntMapping(7, 0) // 비표준 0 기반이 아닌 숫자 지원!
            .supportsHash().supportsL().supportsW().and()
        .withYear().optional().and()
        .instance();

// 또는 사전 정의된 인스턴스 가져오기
cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(QUARTZ);

cron 표현식 빌드

root@kitploit:~
// Cron 표현식 생성. CronMigrator가 cron 제공자 중립성을 유지하도록 보장합니다.
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();
// 문자열 표현식 얻기
String cronAsString = cron.asString(); // 0 * * L-3 * ? *

파싱

root@kitploit:~
// 제공된 정의를 기반으로 파서 생성
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:~
// 특정 로케일에 대한 설명자 생성
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);

// 표현식 파싱 후 설명자에게 설명 요청
String description = descriptor.describe(parser.parse("*/45 * * * * ?"));
// 설명: "매 45초마다"

description = descriptor.describe(quartzCron);
// 설명: "월요일부터 금요일까지 매일 23분에 매시간"
// 아래 cron과 동일한 설명입니다:
descriptor.describe(parser.parse("0 23 * ? * MON-FRI *"));

마이그레이션

root@kitploit:~
// cron 라이브러리 간 마이그레이션이 이렇게 쉬웠던 적이 없습니다!
// CronMapper를 사용하여 cron 표현식을 다른 형식으로 변환:
CronMapper cronMapper = CronMapper.fromQuartzToCron4j();

Cron cron4jCron = cronMapper.map(quartzCron);
// 문자열 표현을 얻으려면 다음을 사용할 수 있습니다.
cron4jCron.asString(); // 반환: 23 * * * 1-5

검증

root@kitploit:~
cron4jCron.validate()

실행 시간 계산

root@kitploit:~
// 마지막 실행 시간 구하기
ZonedDateTime now = ZonedDateTime.now();
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * ? *"));
ZonedDateTime lastExecution = executionTime.lastExecution(now);

// 다음 실행 시간 구하기
ZonedDateTime nextExecution = executionTime.nextExecution(now);

// 마지막 실행 이후 시간
Duration timeFromLastExecution = executionTime.timeFromLastExecution(now);

// 다음 실행까지 시간
Duration timeToNextExecution = executionTime.timeToNextExecution(now);

라이브러리 간 상수 매핑

root@kitploit:~
// Quartz에서 JodaTime으로 요일 값 매핑
int jodatimeDayOfWeek =
        ConstantsMapper.weekDayMapping(
                ConstantsMapper.QUARTZ_WEEK_DAY,
                ConstantsMapper.JODATIME_WEEK_DAY
        );

사람을 위한 날짜 및 시간 형식 지정!

htime 사용 - Java용 사람이 읽을 수 있는 날짜 시간 형식 지정! 이 기능은 동일한 jar에 포함되어 있지 않지만 유용할 수 있는 cron-utils 프로젝트입니다.

root@kitploit:~
// 더 이상 "YYYY-MM-dd KK a" 패턴을 기억할 필요가 없습니다.
DateTimeFormatter formatter = 
	    HDateTimeFormatBuilder
		    .getInstance()
		    .forJodaTime()
		    .getFormatter(Locale.US)
		    .forPattern("June 9, 2011");
String formattedDateTime = formatter.print(lastExecution);
// formattedDateTime은 "요일, 월 일, 년" 형식의 lastExecution이 됩니다.

cron-utils CLI

새 프로젝트를 작성하지 않고 콘솔에서 바로 cron-utils를 사용할 수 있는 간단한 CLI 인터페이스를 제공합니다! 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 * * *'

'cp' 없이 독립 실행형 jar를 원한다면, uber jar를 빌드하세요:

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

그런 다음 ( target 디렉토리에 빌드된) cli-utils을 다음과 같이 실행합니다:

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

기여 및 지원!

기여를 환영합니다! 다음과 같은 방법으로 기여할 수 있습니다:

  • 이 저장소에 별표를 눌러 주세요!
  • 새 기능을 요청하거나 추가하세요. 로드맵을 확인하세요!
  • 기존 코드 개선: 예: 더 정확한 설명 사례 제공
  • 테스트
  • 문서 개선
  • 새 로케일을 지원하는 번역 제공
  • 제안 및 버그 신고
  • 널리 알리기
  • 어떻게 사용하는지 알려주세요! 저희 위키에 등록해 주시기를 기대합니다!

저희 페이지를 확인하세요! 프로젝트 통계는 OpenHUB 프로필에서 확인할 수 있습니다.

기타 cron-utils 프로젝트

다음 cron-utils 프로젝트를 방문하여 사용해 보시기 바랍니다:

  • htime: 사람이 날짜 형식을 쉽게 지정할 수 있게 해주는 Java 라이브러리. 더 이상 날짜 시간 형식 문자를 기억할 필요 없음: 예제를 작성하면 적절한 포맷터를 얻을 수 있습니다.
  • cron-utils-spring: cron-utils를 사용하여 Spring 프레임워크에서 cron 표현식을 사람이 읽을 수 있는 언어로 설명하는 Java 라이브러리.
  • cron-utils-cli: CLI를 통해 사용할 수 있는 cron-utils 기능.
  • cron-utils-sisyphus: 여러 cron 표기법을 지원하는 Scala 스케줄러.
  • cron-utils-scheduler: cron-utils 라이브러리를 기반으로 하는 Java 작업 스케줄러.
도구 다운로드