Linux 日期/时间 - 每月“mongodump”

Linux 日期/时间 - 每月“mongodump”

对于 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%,我需要指定上个月第一天和最后一天的时间戳部分,而不是显示如下:

Sat Dec  1 00:00:00 UTC 2012
Mon Dec 31 23:59:59 UTC 2012

有没有办法以上面列出的方式显示日期/时间的时间部分?

答案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"

相关内容