2015-03-02 10 views
0

был установлен на crontab строке ниже. Но это не подтверждает день. Когда я удаляю день недели, выполняется правильно. Любое предложение?Cron, выполняющий неправильный

# uname -a 
Linux server 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

# cat /etc/issue 
Red Hat Enterprise Linux Server release 6.4 (Santiago) 
Kernel \r on an \m 

# date 
Mon Mar 2 08:50:19 BRT 2015 

# crontab -l 
* * 1 3 1 echo "teste" 

# tail -f /var/log/cron 
Mar 2 08:38:01 server CROND[10509]: (root) CMD (echo "teste") 
+1

добавить несколько содержательных объяснений. В настоящее время единственный способ понять вашу проблему - прочитать код, тогда как я уверен, что вы сами это объясните. Вы также можете прочитать [Советы по отладке вопросов cron от crontab wiki] (http://stackoverflow.com/tags/crontab/info) – fedorqui

+1

Спасибо. В этой ссылке ответили на мой вопрос, когда сказали, что: «... есть одно исключение: если« день месяца »и« день недели »ограничены (а не« * »), то либо поле« день месяца » (3) ** или ** поле «день недели» должно соответствовать текущему дню ... » –

+0

Как установить только запуск cron: Понедельник 02 марта –

ответ

0

Если временной интервал не может быть определен в crontab, вы можете использовать проверку даты и времени в самом скрипте. Вы можете заставить crontab запускать скрипт каждые 2 марта и проверять внутри скрипта, если день действительно понедельник. Если нет, вы можете выйти из сценария.

Например.

[[ $(date +%u) -ne 1 ]] && exit 

Если день не понедельник, выход.

0

About crontab »... есть одно исключение: если оба„день месяца“и„день недели“ограничены (не„*“), то либо,„день месяца поле“(3) или «день недели» поле (5) должен соответствовать текущий день ...»

Аналогичная проблема, как говорят в Run a cron job on the first Monday of every month? и How to run a cron job on the first weekday of the month

Таким образом, в наборе кронтаб:.

* * 1 3 * ["$ (дата '+ \% a')" == "Солнце"] & &/bin/mkdir/tmp/cronsilvioteste