===== Exemplos do comando date ===== ==== Nível Básico ==== * **Exibir a data e hora atuais:** - date - Exibe a data e hora atuais no formato padrão do sistema. * **Exibir apenas a data atual:** - date +%Y-%m-%d - Exibe a data atual no formato `YYYY-MM-DD` (ex.: 2024-10-12). * **Exibir apenas a hora atual:** - date +%H:%M:%S - Exibe a hora atual no formato de 24 horas `HH:MM:SS`. * **Exibir o dia da semana:** - date +%A - Exibe o dia da semana (ex.: "Saturday" para sábado). * **Exibir a data e hora no formato UTC:** - date -u - Exibe a data e hora em UTC (Tempo Universal Coordenado). ==== Nível Intermediário ==== * **Exibir a data e hora no formato customizado:** - date +"Hoje é %d/%m/%Y e são %H:%M" - Exibe a data e hora no formato personalizado, como "Hoje é 12/10/2024 e são 14:30". * **Converter um timestamp em data legível:** - date -d @1634043000 - Converte o timestamp Unix `1634043000` em uma data legível. * **Exibir a data de um dia específico no futuro:** - date -d "+7 days" - Exibe a data de daqui a 7 dias a partir da data atual. * **Exibir a data de um mês anterior:** - date -d "last month" - Exibe a data correspondente ao mês anterior. * **Salvar a data atual em uma variável:** - hoje=$(date +%Y-%m-%d) - Salva a data atual no formato `YYYY-MM-DD` na variável `hoje`. ==== Nível Avançado ==== * **Alterar a data e hora do sistema:** - sudo date -s "2024-12-31 23:59:59" - Define a data e hora do sistema para `31 de dezembro de 2024, 23:59:59`. * **Exibir a diferença entre duas datas:** - date -d "2024-12-31" +%s
date -d "2023-01-01" +%s
echo $(( ($(date -d "2024-12-31" +%s) - $(date -d "2023-01-01" +%s)) / 86400 )) - Calcula a diferença em dias entre duas datas (de 1º de janeiro de 2023 a 31 de dezembro de 2024). * **Exibir o número da semana atual:** - date +%V - Exibe o número da semana no ano atual (ex.: 41). * **Exibir a data e hora de arquivo específico:** - date -r arquivo.txt - Exibe a data e hora de modificação do arquivo `arquivo.txt`. * **Criar backups com timestamps no nome do arquivo:** - cp arquivo.txt arquivo_$(date +%Y%m%d_%H%M%S).txt - Copia o arquivo `arquivo.txt` adicionando um timestamp no nome do backup (ex.: `arquivo_20241012_143000.txt`). ==== Nível Especializado ==== * **Sincronizar a data e hora com um servidor NTP:** - sudo ntpdate ntp.servidor.com - Sincroniza a data e hora do sistema com um servidor NTP (Network Time Protocol). * **Usar `date` para gerar um arquivo de log com timestamps contínuos:** - while true; do echo "Log $(date +%Y-%m-%d\ %H:%M:%S)" >> log.txt; sleep 10; done - Cria um loop que adiciona uma entrada de log com timestamp a cada 10 segundos no arquivo `log.txt`. * **Adicionar um timestamp a cada linha de um comando em execução:** - ping google.com | while read line; do echo "$(date +%H:%M:%S) $line"; done - Executa o comando `ping` e adiciona um timestamp a cada linha da saída. * **Exibir a data em milissegundos:** - date +%s%3N - Exibe o tempo Unix (epoch) com precisão de milissegundos. * **Agendar a execução de um comando em uma data específica:** - echo "comando_a_ser_executado" | at 12:30 PM 2024-12-31 - Usa o comando `at` para agendar a execução de um comando no dia `31 de dezembro de 2024`, às 12:30 PM. * **Calcular o tempo restante até uma data futura:** - data_futura=$(date -d "2024-12-31 23:59:59" +%s)
data_atual=$(date +%s)
echo "$(( ($data_futura - $data_atual) / 86400 )) dias restantes" - Calcula o número de dias restantes até o `31 de dezembro de 2024`. * **Gerar timestamps contínuos para uso em scripts de automação:** - for i in {1..5}; do echo "Processo $i iniciado em $(date +%Y-%m-%d\ %H:%M:%S)"; sleep 1; done - Gera timestamps contínuos com uma pausa de 1 segundo entre cada execução, ideal para monitoramento de processos.