Lo más extraño sucede con el cálculo de la fecha por lo que ves a continuación; ¡Observe que agregar un mes al 31 de octubre lo lleva a diciembre! ¿Esto no puede ser? Tengo el mismo problema en Ubuntu 16 y 20. Este problema también hace que mi script de shell proporcione una fecha incorrecta, por lo que no es solo el programador cron.
root@ubuntugc:/home/miuser# date -d "20210930+1 month" +%Y-%m-%d
2021-10-30
root@ubuntugc:/home/miuser# date -d "20211030+1 month" +%Y-%m-%d
2021-11-30
root@ubuntugc:/home/miuser# date -d "20211031+1 month" +%Y-%m-%d
2021-12-01
Respuesta1
Así date
funciona, al agregarlo 1 month
solo aumenta el mes en uno, en tu caso a 2021-11-31
la cual es una fecha que no existe por lo que luego adelanta el resultado un día a una fecha válida ( 2021-12-01
). Dedocumentación de coreutils:
La confusión en las unidades puede causar problemas con elementos relativos. Por ejemplo, '2020-07-31 -1 mes' podría evaluarse como 2020-07-01, porque 2020-06-31 no es una fecha válida. Para determinar de forma más fiable el mes anterior, puedes preguntar por el mes anterior al día 15 del mes actual. Por ejemplo: