La sintaxis que probaste es realmente ambigua. Dependiendo de cuántos días haya en el mes, algunos meses se ejecutarán en días impares y otros en pares. Esto se debe a que la forma en que se calcula toma el número total de posibilidades y las divide. Puede anular este comportamiento extraño al especificar manualmente el rango de días y usar un número impar o par de días. Dado que los scripts de día par nunca se ejecutarían en el día 31 de meses más largos, no pierde nada usando 30 días como base para días pares, y al especificar específicamente dividirlo como si hubiera 31 días, puede forzar impar -Día de ejecución.
La sintaxis se vería así:
# Will only run on odd days:
0 0 1-31/2 * * command
# Will only run on even days:
0 0 2-30/2 * * command
Su preocupación acerca de que los meses no tengan la misma cantidad de días no es importante aquí porque no hay meses que tengan MÁS días que este y para el mal mes de febrero, el rango de fechas nunca coincidirá con el último día o dos, pero no hará daño tener En la lista.
El único 'problema' para este enfoque es que si está en un ciclo de días impares, después de los meses con 31 días, su comando también se ejecutará el primero del mes. Del mismo modo, si está forzando un ciclo uniforme, cada año bisiesto causará un ciclo de tres días y el final de febrero. Realmente no puede evitar el hecho de que cualquier patrón regular de "cada dos días" no siempre va a caer en días pares o impares en cada mes y de cualquier manera que lo fuerce, tendrá una carrera adicional o se perderá una carrera entre meses con recuentos de días coincidentes.