
MongoDB 백업의 경우 지난달의 모든 변경 사항이 아닌 지난 달의 최신 변경 사항만 백업하고 싶습니다. "mongodump"에 전달해야 하는 쿼리의 일부로 첫 번째 날/지난 달과 마지막 날/지난 달을 결정해야 하며 다음과 같이 수행했습니다.
date -d "-1 month -$(($(date +%d)-1)) days"
Sat Dec 1 21:05:21 UTC 2012
date -d "-$(date +%d) days -0 month"
Mon Dec 31 21:06:22 UTC 2012
보시다시피 이것은 거의 작동하지만 위의 "날짜" 예제의 시간 부분은 내 시간대를 기준으로 현재 시간을 반영합니다. 지난 달의 최신 백업 데이터만 100% 포함하려면 다음과 같이 표시하는 대신 이전 달의 1일과 마지막 날의 타임스탬프 부분을 지정해야 합니다.
Sat Dec 1 00:00:00 UTC 2012
Mon Dec 31 23:59:59 UTC 2012
위에 나열된 방식으로 날짜/시간의 시간 부분을 표시하는 방법이 있습니까?
답변1
올바른 방향으로 가고 있지만 시차를 계산하는 대신 해당 월의 1일에 해당하는 절대 날짜를 만듭니다. TZ
다른 시간대에서 실행되도록 환경 변수를 설정합니다 .
TZ=UTC date -d "$(date +%Y-%m-01) -1 month"
TZ=UTC date +%Y-%m-01
답변2
이것이 당신에게 효과가 있습니까?
date -d "-1 month -$(($(date +%d)-1)) days" "+%a %b %d 00:00:00 %Z %Y"
date -d "-$(date +%d) days -0 month" "+%a %b %d 23:59:59 %Z %Y"