아래에서 볼 수 있듯이 날짜 계산에서 가장 이상한 일이 발생합니다. 10월 31일에 한 달을 더하면 12월이 됩니다. 이건 불가능하지 않나요? 우분투 16과 20에서도 같은 문제가 있습니다. 이 문제로 인해 쉘 스크립트가 잘못된 날짜를 제공하게 되므로 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
답변1
이것이 date
작동하는 방식입니다. 추가하면 1 month
월 단위로만 증가합니다. 귀하의 경우에는 2021-11-31
존재하지 않는 날짜이므로 결과가 유효한 날짜( 2021-12-01
)로 하루 앞으로 이동합니다. ~에서coreutils 문서:
단위가 모호하면 관련 프로젝트에 문제가 발생할 수 있습니다. 예를 들어 "2020-07-31 -January"는 2020-07-01로 계산될 수 있습니다. 2020-06-31은 유효하지 않은 날짜이기 때문입니다. 이전 달을 보다 확실하게 확인하려면 이번 달 15일 이전의 달을 요청할 수 있습니다. 예를 들어: