Esta pregunta busca proporcionar una respuesta adecuada.
scurker
1
Sí, pero esa pregunta es sobre Tue, no Wed;) Sin embargo, la respuesta aceptada es inteligente.
edoloughlin
>> Sí, pero esa pregunta es sobre martes, no miércoles;) La respuesta aceptada es inteligente, sin embargo ... ¿qué es tan difícil cambiar de martes a miércoles?
ajreal
0 * * * 3 test $ (date \ +% u) -eq 3 && echo "start run me" prueba esto. no pegó a la respuesta porque una pregunta del trazador de líneas es bastante vaga.
Respuestas:
14
Mi página de manual para crontab (que lamentablemente no puedo encontrar en línea) da el siguiente ejemplo:
# Run on every second Saturday of the month
0 4 8-14 * * test $(date +\%u) -eq 6 && echo "2nd Saturday"
Para cualquiera que quiera editar esta respuesta, la razón por la que no solo usa el campo del día de la semana es que si tanto el día del mes como el día de la semana están restringidos (es decir, no lo están *), el comando se ejecutará cuando cualquiera coincida .
Descubrí que tenía que escapar del% u, así que:date +\%u
Antony D'Andrea
3
Puede evitar ejecutar un script externo utilizando una combinación del truco del día de la semana más el día de la semana:
# Run on every second Wednesday of the month
0 4 8-14 * Wed job.sh
Esto también evita ejecutar otro programa externo. El 8-14 selecciona todos los días que coinciden con la segunda semana del mes. Luego se filtra solo ese miércoles.
Para los servidores CentOS 7, esta parece ser la sintaxis que funciona para mí. Tenga en cuenta los espacios alrededor de [y ]. Me tomó un tiempo entenderlo.
Esto ejecuta el test.sharchivo a las 13:07 / 1:07 PM del segundo miércoles del mes. (0 = domingo, 1 = lunes, 2 = martes, 3 = miércoles, etc.)
Respuestas:
Mi página de manual para crontab (que lamentablemente no puedo encontrar en línea) da el siguiente ejemplo:
Adaptando esto a sus propósitos ...
fuente
*
), el comando se ejecutará cuando cualquiera coincida .date +\%u
Puede evitar ejecutar un script externo utilizando una combinación del truco del día de la semana más el día de la semana:
Esto también evita ejecutar otro programa externo. El 8-14 selecciona todos los días que coinciden con la segunda semana del mes. Luego se filtra solo ese miércoles.
fuente
No es posible usar cron por sí solo, pero puede llamar a un script una vez por semana que haga la prueba:
En crontab, ejecute second_wed.sh a las 12.00 todos los miércoles:
En second_wed.sh:
fuente
Según esta respuesta, podría hacer:
fuente
Para los servidores CentOS 7, esta parece ser la sintaxis que funciona para mí. Tenga en cuenta los espacios alrededor de
[
y]
. Me tomó un tiempo entenderlo.Esto ejecuta el
test.sh
archivo a las 13:07 / 1:07 PM del segundo miércoles del mes. (0 = domingo, 1 = lunes, 2 = martes, 3 = miércoles, etc.)fuente
Dispare a las 10:15 AM el tercer viernes de cada mes:
0 15 10 ? * 6#3
Fuente: https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
fuente