Como trabalhar com data e hora no Bash usando o comando date

Como trabalhar com data e hora no Bash usando o comando date

Date Command é um programa de bash externo que permite definir ou exibir a data e a hora do sistema. Ele também fornece várias opções de formatação. O comando de data está instalado em todas as distribuições Linux por padrão.

$ que data $ tipo -A Data 
Encontre o local do comando de data

Tipo comando de data no terminal que exibirá a data e hora atuais.

$ data 
Data de verificação no Linux

Alterar a data e a hora do sistema Linux

Usando comando de data, Data do sistema, hora e fuso horário podem ser modificados e a alteração deve ser sincronizada com o relógio de hardware.

$ DAT -SET = "Qui 12 de novembro 13:06:59 IST 2020" $ HWCLOCK -Systohc 
Defina a data e a hora do sistema Linux

Opções de formatação

Um bom lugar para obter a lista de opções de formatação será a página do homem.

$ data de homem 

Vamos ver algumas das opções de formatação mais comuns que usaremos.

  • Para aplicar a formatação, use “+ seguido pela "formatador““.
  • Para obter uma lista de opções de formatação para GNU \ Linux, dê uma olhada na página do homem vinculado.
  • Para obter uma lista de opções de formatação para o BSD, dê uma olhada na página do homem vinculado.

As duas partes importantes do comando de data está usando formato +% e -date opção.

Agora vamos aplicar alguma formatação no comando de data. Para aplicar a formatação, adicione mais sinal (+) seguido pela %formatador Como mostrado em exemplos.

Data de manuseio no Linux

Vamos dar uma olhada em como usar os formatados relacionados a data em um script de shell simples chamado 'data.sh'.

# Ano de impressão, mês, dia e data… eco "Estamos no ano = $ (data + %y)" echo "Estamos no ano = $ (data + %y)" # diferença entre %y e %y é %y imprimirá 4 dígitos, enquanto %y imprimirá os últimos 2 dígitos do ano. eco "Estamos no mês = $ (data +%m)" echo "Estamos no mês = $ (data +%b)" eco "Estamos no mês = $ (data +%b)" # diferença Entre %B e %B é, %B imprimirá o nome do mês inteiro, enquanto %B imprimirá o nome do mês abreviado. eco "Dia atual do mês = $ (data +%d)" echo "dia atual da semana = $ (data +%a)" eco "dia atual da semana = $ (data +%a)" # diferença Entre %A e %A é, %A imprimirá o nome da semana completa, enquanto %A imprimirá o nome da semana abreviada. # Em vez de formatar para obter a data, podemos usar %d, que imprimirá a data como %m/ %d/ %y ou %f, que impressa em %y- %m- %d formato. eco "data usando %d = $ (data + %d)" Echo "Data usando %f = $ (data + %f)" 
Encontre data e hora usando o script

Tempo de manuseio no Linux

Vamos dar uma olhada em como usar tempo Formatatos relacionados em um script de shell simples chamado 'tempo.sh'.

# Horário de impressão, mins, segundos, nano segundos eco horas = $ (data +%h) eco minutos = $ (data +%m) eco segundos = $ (data +%s) nanossegundos de eco = $ (data +%n) ECHO Epoch Time = $ (data +%s) echo "Hora atual = $ (data +%h:%m:%s:%n)" # também pode usar%t que exibe tempo em hh: mm: formato SS. eco "horário atual em formato 24 horas = $ (data + %t)" # também pode usar %r para exibir tempo em formato de 12 horas. eco "horário atual em formato de 12 horas = $ (data +%r)" 
Encontre tempo no Linux usando o script

Com -date ou -d sinalizador

Com --data ou -d A entrada de sinalizador pode ser passada como string e comando de data sabe lidar com isso de maneira inteligente.

Vamos ver alguns exemplos para entender como funciona.

# Imprima a data e hora de ontem. eco "ontem = $ (data -d" ontem ")" # Imprima a data e hora de amanhã. eco "amanhã = $ (data -d" amanhã ")" # encontre qual é a data e hora antes de 10 dias daqui a. eco "antes de 10 dias = $ (data -d" amanhã -10 dias ")" # Encontre no mês passado e no próximo mês Echo "no mês passado = $ (data -d" no mês passado ""%b ")" eco "no próximo mês = $ (data -d "próximo mês" "%b") "Encontre no ano passado e no próximo ano eco" no ano passado = $ (data -d "no ano passado" "+%y") "echo" no próximo ano = $ (Data -d "próximo ano" "+%y") " # prevê o eco da semana" a 2 dias a partir de hoje e vem nos dias úteis? = $ (data -d "hoje +2 dias" " +%a") 
Verifique a data usando formatação

Operações comuns

Calcule o número de dias entre 2 datas dadas.

$ echo $ ((($ (data -d "2020-11-10" "+%s")-$ (data -d "2020-11-01" "+%s") / 86400)) 

Encontre que o ano determinado é um ano bisseiro ou não.

$ para y em 2000… 2020; DATA -D $ Y-02-29 &>/DEV/NULL && eco $ y é ano bissenhoso; feito 
Encontre o ano bissealho no Linux

Atribuindo a saída do comando de data a uma variável.

$ Today = $ (data +%y-%m-%d) ou $ Today1 = $ (data +%f) $ echo $ Today $ echo $ Today1 
Atribuir data à variável

Crie arquivos de log com a data adicionada ao nome do arquivo.

Adicionar data e hora ao criar arquivos de log, backup ou arquivos de texto é uma operação comum que encontraremos com mais frequência. Vamos dar um exemplo, para fazer um backup, criamos um script de shell.

Este script receberá um backup de 00:00 às 23:59 e programado para ser executado diariamente às 00:00 do dia seguinte. Queremos criar arquivos de log com o formato de data de ontem.

Custom_format = $ (data-data "ontem" "+%d-%y-%h:%m") log_file =/var/log/custom_application/aplicativo _ $ custom_format.LOG ECHO "Script Iniciado" >> $ LOG_FILE… Blocos de código… ECHO ”Script concluído” >> $ LOG_FILE 

É isso para este artigo. Neste artigo, vimos como usar a data e a hora do Bash no Linux. Deixe -nos saber seu feedback.