diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json
index cc6022d6a..d24ac5d2e 100644
--- a/apps/i18n/lina/en.json
+++ b/apps/i18n/lina/en.json
@@ -395,7 +395,7 @@
"CriticalLoad": "Serious",
"CronExpression": "Complete crontab expression",
"Crontab": "Crontab",
- "CrontabDiffError": "Please ensure that the interval for scheduled execution is no less than ten minutes!",
+ "CrontabDiffError": "Please ensure that the interval for scheduled execution is no less than {minutes} minutes!",
"CrontabHelpText": "If both interval and crontab are set, crontab is prioritized",
"CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
",
"CrontabOfCreateUpdatePage": "",
diff --git a/apps/i18n/lina/es.json b/apps/i18n/lina/es.json
index c6acb83cc..6cf0dddf6 100644
--- a/apps/i18n/lina/es.json
+++ b/apps/i18n/lina/es.json
@@ -394,7 +394,7 @@
"CriticalLoad": "Severo",
"CronExpression": "Expresión completa de crontab",
"Crontab": "Tareas programadas",
- "CrontabDiffError": "¡Asegúrese de que el intervalo de tiempo para la ejecución regular no sea inferior a diez minutos!",
+ "CrontabDiffError": "¡Asegúrese de que el intervalo de tiempo para la ejecución regular no sea inferior a {minutes} minutos!",
"CrontabHelpText": "Si se configuran simultáneamente interval y crontab, se prioriza crontab",
"CrontabHelpTip": "Por ejemplo: ejecuta cada domingo a las 03:05 <5 3 * * 0>
utilizando una expresión de crontab de Linux de 5 posiciones (herramienta en línea)
",
"CrontabOfCreateUpdatePage": "Por ejemplo: ejecuta cada domingo a las 03:05 <5 3 * * 0>
utilizando una expresión de crontab de Linux de 5 posiciones (herramienta en línea)
Si se establecen tanto la ejecución programada como la ejecución cíclica, se dará prioridad a la ejecución programada.",
diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json
index e834ccf3c..b8235ec1e 100644
--- a/apps/i18n/lina/ja.json
+++ b/apps/i18n/lina/ja.json
@@ -398,7 +398,7 @@
"CriticalLoad": "重大",
"CronExpression": "crontab完全表現",
"Crontab": "定時実行タスク",
- "CrontabDiffError": "定期実行の間隔が10分以上であることをご確認ください!",
+ "CrontabDiffError": "定期実行の間隔が{minutes}分以上であることをご確認ください!",
"CrontabHelpText": "同時にintervalとcrontabを設定した場合、crontabが優先されます",
"CrontabHelpTip": "例えば:日曜日の03:05に実行 <5 3 * * 0>
5桁のlinux crontab表現を使用 (オンラインツール)
",
"CrontabOfCreateUpdatePage": "例:毎週日曜日の03:05に実行 <5 3 * * 0>
5桁のLinux crontab表現を使用してください <分 時 日 月 星期> (オンラインツール)
定期的な実行と周期的な実行が設定されている場合、定期的な実行が優先されます",
diff --git a/apps/i18n/lina/pt_br.json b/apps/i18n/lina/pt_br.json
index 279ab4784..7d0f53086 100644
--- a/apps/i18n/lina/pt_br.json
+++ b/apps/i18n/lina/pt_br.json
@@ -395,7 +395,7 @@
"CriticalLoad": "Grave",
"CronExpression": "Expressão Completa do Crontab",
"Crontab": "Tarefas programadas",
- "CrontabDiffError": "Por favor, certifique-se de que o intervalo de tempo para execução regular não seja menor que dez minutos!",
+ "CrontabDiffError": "Por favor, certifique-se de que o intervalo de tempo para execução regular não seja menor que {minutes} minutos!",
"CrontabHelpText": "Se interval e crontab estiverem configurados ao mesmo tempo, crontab terá prioridade",
"CrontabHelpTip": "Por exemplo: execute todos os domingos às 03:05 <5 3 * * 0>
Use a expressão linux crontab de 5 posições (Ferramenta online)
",
"CrontabOfCreateUpdatePage": "Por exemplo: Execute todos os domingos às 03:05 <5 3 * * 0>
Use a expressão crontab Linux de 5 dígitos (Ferramenta online)
Se a execução periódica e a execução regular forem definidas ao mesmo tempo, a execução regular terá prioridade",
diff --git a/apps/i18n/lina/ru.json b/apps/i18n/lina/ru.json
index 767143892..23e94a4bc 100644
--- a/apps/i18n/lina/ru.json
+++ b/apps/i18n/lina/ru.json
@@ -394,7 +394,7 @@
"CriticalLoad": "Серьезно",
"CronExpression": "Полное выражение crontab",
"Crontab": "Запланированные задачи",
- "CrontabDiffError": "Пожалуйста, убедитесь, что интервал выполнения регулярно составляет не менее десяти минут!",
+ "CrontabDiffError": "Пожалуйста, убедитесь, что интервал выполнения регулярно составляет не менее {minutes} минут!",
"CrontabHelpText": "Если одновременно установлены интервал и crontab, предпочтение отдается crontab",
"CrontabHelpTip": "например: выполнять каждое воскресенье в 03:05 <5 3 * * 0>
использовать 5-значное выражение crontab Linux <минуты часы день месяц день_недели> (онлайн инструмент)
",
"CrontabOfCreateUpdatePage": "Например: выполнять каждое воскресенье в 03:05 <5 3 * * 0>
Использовать 5-значное выражение crontab Linux <минуты часы день месяц день_недели> (онлайн инструмент)
Если одновременно установлены периодическое выполнение и циклическое выполнение, приоритет отдается периодическому выполнению",
diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json
index 99b0b178c..91d458bc1 100644
--- a/apps/i18n/lina/zh.json
+++ b/apps/i18n/lina/zh.json
@@ -394,7 +394,7 @@
"CriticalLoad": "严重",
"CronExpression": "crontab完整表达式",
"Crontab": "定时任务",
- "CrontabDiffError": "请确保定期执行的时间间隔不少于十分钟!",
+ "CrontabDiffError": "请确保定期执行的时间间隔不少于 {minutes} 分钟!",
"CrontabHelpText": "如果同时设置了 interval 和 crontab,则优先考虑 crontab",
"CrontabHelpTip": "例如:每周日 03:05 执行 <5 3 * * 0>
使用 5 位 linux crontab 表达式 (在线工具)
",
"CrontabOfCreateUpdatePage": "例如:每周日 03:05 执行 <5 3 * * 0>
使用5位 Linux crontab 表达式 <分 时 日 月 星期> (在线工具)
如果同时设置了定期执行和周期执行,优先使用定期执行",
diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json
index 03e9615f6..9c400e711 100644
--- a/apps/i18n/lina/zh_hant.json
+++ b/apps/i18n/lina/zh_hant.json
@@ -398,7 +398,7 @@
"CriticalLoad": "嚴重",
"CronExpression": "crontab完整表達式",
"Crontab": "定時任務",
- "CrontabDiffError": "請確保定期執行的時間間隔不少於十分鐘!",
+ "CrontabDiffError": "請確保定期執行的時間間隔不少於 {minutes} 分鐘!",
"CrontabHelpText": "如果同時設定了 interval 和 crontab,則優先考慮 crontab",
"CrontabHelpTip": "例如:每週日 03:05 執行 <5 3 * * 0>
使用 5 位 linux crontab 表達式 (線上工具)
",
"CrontabOfCreateUpdatePage": "例如:每週日 03:05 執行 <5 3 * * 0>
使用5位 Linux crontab 表達式 <分 時 日 月 星期> (線上工具)
如果同時設置了定期執行和週期執行,優先使用定期執行",
diff --git a/apps/ops/mixin.py b/apps/ops/mixin.py
index 1c8d1cff6..5279a1acd 100644
--- a/apps/ops/mixin.py
+++ b/apps/ops/mixin.py
@@ -188,6 +188,10 @@ class PeriodTaskSerializerMixin(serializers.Serializer):
if isinstance(crontab, str) and len(crontab.strip().split()) != 5:
msg = _('* Please enter a valid crontab expression')
raise serializers.ValidationError(msg)
+
+ crontab = crontab.strip().split()
+ if '*' in crontab[0]:
+ raise serializers.ValidationError(_("Crontab minute must not contain '*'"))
return crontab
def validate_interval(self, interval):