[Eisfair_dev] eischk CRONTAB wird nicht richtig überprüft
Marcus Roeckrath
marcus.roeckrath at gmx.de
Sa Feb 17 10:22:35 CET 2018
Hallo Sebastian, hallo Holger,
Marcus Roeckrath wrote:
>> '/10 * * * *' wird als richtig erkannt. Ist aber falsch
>
> Das ist die zugehörige RegExp:
>
> '([0-9,/*-]+) *([0-9,/*-]+) *([0-9,/*-]+)
> *([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
> *([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+)'
Kritisch ist das " *" zwischen den Elementen, da da Leerzeichen auch Null
mal vorkommen kann und damit wird z. B. bei 0-23 als ein Element die ersten
beiden RegExp verbraucht.
eis # echo "0-23 * *" | grep -E '([0-9,/*-]+) *([0-9,/*-]+) *([0-9,/*-]+)
*([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
*([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+)'
0-23 * *
Hier mein Vorschlag:
'^ *([0-9,/*-]+) +([0-9,/*-]+) +([0-9,/*-]+)
+([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
+([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+) *$'
Habe gleichzeitig auch noch Leerzeichen am Ende und anfang zugelassen.
Nun:
eis # echo "0-23 * *" | grep -E '^ *([0-9,/*-]+) +([0-9,/*-]+) +([0-9,/*-]+)
+([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
+([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+) *$'
eis #
Behebt auch einen weiteren Fehler.
Alt:
eis # echo "x0-23 * * * *" | grep -E '([0-9,/*-]+) *([0-9,/*-]+)
*([0-9,/*-]+)
*([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
*([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+)'
x0-23 * * * *
Neu:
eis # echo "x0-23 * * * *" | grep -E '^ *([0-9,/*-]+) +([0-9,/*-]+)
+([0-9,/*-]+)
+([0-9,/*(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)-]+)
+([0-7,/*(mon,tue,wed,thu,fri,sat,sun)-]+) *$'
Jeder Unfug wird dadurch aber auch nicth abgefangen.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair_dev