Trabalhando com datas no Linux

Neste artigo falarei sobre o comando date e as possibilidades de formatação de data no Linux, o que é muito util para extrair relatórios de períodos específicos e usar em seus shell scripts.

[ Hits: 35.473 ]

Por: Vaner Vainer Versore em 08/06/2004


Introdução



A data é um argumento muito importante dentro de sistemas de informação, principalmente na extração de dados. Geralmente queremos saber o faturamento da empresa em um determinado período, qual foi a venda de determinado produto em determinado mês, dentre outras. Para os administradores de sistemas não deixa de ser diferente, relatórios de uso da internet e agendamento de tarefas são exemplos.

Por este motivo abordarei neste tutorial como trabalhar com datas, mostrarei alguns comandos os quais mais tarde poderão virar scripts e automatizar suas tarefas, livrando seu tempo para você buscar novos desafios.

Antes de começarmos a falar da manipulação de datas especificamente, gostaria de mostrar um comando interessante:

$ cal
(mostra o calendário do mês corrente)

$ cal 2004
(mostra o calendário do ano de 2004, logo "cal 2003" irá mostrar o calendário de 2003 ;-P)

O comando date serve para mostrar a data e o tempo do sistema e ajustá-los, tem a seguinte forma:

date [opções] [+formatação]

Ajustar a hora do sistema:

# date 051909522004

Onde o 05 corresponde ao mês, o 19 ao dia, o 09 as horas, o 52 aos minutos, o 20 às duas primeiras casas do ano e o 04 às duas segundas casas do ano, logo estou selecionando para o meu sistema a data 19/05/2004 e a hora 09h52min.

$ date -r <caminho do arquivo>
(mostra a data da última modificação do arquivo)

$ date --date yesterday
(mostra a data de ontem com a formatação do sistema. A opção --date pode ser substituída por -d e yesterday pode ser substituído por today, tomorrow dentre outras opções)

$ date +%Y
(mostra o ano corrente)

$ date +%d/%m/%Y
(mostra a data corrente na formatação dd/mm/aaaa)

Agora podemos combiná-los (opções + formatação):

$ date -d yesterday +%d/%m/%Y
(mostrará a data do dia anterior na formatação dd/mm/aaaa)

Existem várias opções de formatação possíveis, para obter a lista completa execute:

$ date --help

Onde serão mostradas além dessas opções um help sobre o comando date.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Como escolher sua distro (de forma imparcial)

Funcionamento de um cluster Linux

Como posso recuperar o boot loader?

DesktopBSD - opção ao FreeBSD para desktops

Permissões do Linux

  
Comentários
[1] Comentário enviado por grazyportes em 08/06/2004 - 08:02h

Eu testei e deu certo muito bom este artigo

[2] Comentário enviado por ygorth em 08/06/2004 - 08:12h

tava faltando isso por aqui, parabens!

[3] Comentário enviado por marcosvalente em 14/06/2004 - 03:03h

GOSTEI DO TEU TUT
MUITO BOM MESMO

[4] Comentário enviado por mlegidio em 06/04/2006 - 03:49h

uma coisa mto simples mas dificil de achar um q se entenda tao simplesmente.
parabens

[5] Comentário enviado por poleszuk em 25/04/2008 - 00:43h

Era a dica que eu precisava para meu script!!!

Precisava baixar dados de um receptor GPS, mas o mesmo fecha os arquivos à cada hora. Podia eu fazer uma diferença na variavel hora, $(($hora - 1)), mas aí surgia um problema: horas negativas na mudança do dia UTC. Problema semelhante ocorreria com mudança de mes e ano.

date --date '5 minute ago' -u +%Y-%m-%d' '%H:%M:%S

Com isto garanto que será obtida a data para meu script 5 minutos antes da hora inteira. Utilizo o crontab para executar o script e ntpdate para manter o relogio sincronizado.

Poleszuk

[6] Comentário enviado por rafaelalmeida em 05/05/2010 - 17:29h

Bacana, ajudou aqui também.

[7] Comentário enviado por dafloria em 22/07/2010 - 11:29h

Ótimo artigo, Me ajudou bastante.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts