Data / hora do Linux - “mongodump” mensal

2

Para backups do MongoDB, quero fazer backup apenas das alterações mais recentes do mês anterior, em vez de tudo do mês anterior. Como parte da consulta que preciso passar para "mongodump", tenho que determinar o primeiro dia / mês passado e o último dia / mês passado, o que fiz da seguinte forma:

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

Como você pode ver, isso quase funciona, mas a parte do tempo dos exemplos acima de "data" reflete a hora atual em relação ao meu fuso horário. Para que apenas os dados de backup mais recentes do mês anterior sejam 100% inclusivos, preciso especificar a parte do registro de data e hora para o primeiro e o último dia do mês anterior para que seja exibida da seguinte forma:

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

Existe uma maneira de exibir a parte de hora da data / hora da maneira listada acima?

    
por user31401 29.01.2013 / 22:25

2 respostas

1

Você está no caminho certo, mas em vez de calcular uma diferença de horário, crie uma data absoluta correspondente ao primeiro dia deste mês. Defina a variável de ambiente TZ para operar em um fuso horário diferente.

TZ=UTC date -d "$(date +%Y-%m-01) -1 month"
TZ=UTC date +%Y-%m-01
    
por 30.01.2013 / 01:26
0

Isso funciona para você?

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"
    
por 29.01.2013 / 22:47

Tags