Como posso definir a data e a hora do sistema a partir do prompt de comando (bash shell)? Não tenho GUI instalado e estou logado por sessão ssh. Como posso definir a data em sistemas operacionais Linux?
Use o comando date para exibir a data e hora atuais ou definir a data/hora do sistema pela sessão ssh. Você também pode executar o comando date do terminal X como usuário root. Você deve efetuar login como usuário root para usar o comando date. Isso é útil se a hora e/ou data do servidor Linux estiver errada, e você precisar defini-la para novos valores no prompt do shell.
Linux exibe data e hora atuais
Basta digitar o comando date:
$ date
Exemplos de saída:
Segunda-feira, 21 de janeiro 01:31:40 IST 2019
Linux exibe o relógio de hardware (RTC)
Digite o seguinte comando hwclock para ler o relógio do hardware e exibir a hora na tela:
# hwclock -r
OU# hwclock --show
## OR ##
$ sudo hwclock --show --verbose
OU mostre-o em Tempo Universal Coordenado (UTC):# hwclock --show --utc
Saídas de exemplo:
21/01/2019 01:30:50.608410+05:30
Exemplo de comando Linux Set Date
Use a seguinte sintaxe para definir novos dados e hora:
# date --set="STRING"
Por exemplo, defina novos dados para 2 de outubro de 2006 18:00:00, digite o seguinte comando como usuário root:
# date -s "2 OCT 2006 18:00:00"
OU
# date --set="2 OCT 2006 18:00:00"
Você também pode simplificar o formato usando a seguinte sintaxe:
# date +%Y%m%d -s "20081128"
Exemplos de tempo definido no Linux
Para definir o tempo, use a seguinte sintaxe:
# date +%T -s "10:13:13"
Onde,
- 10: Hora (hh)
- 13: Minuto (mm)
- 13: Segundo (ss)
Use %po equivalente local de AM ou PM, digite:# date +"%T%p" -s "6:10:30AM"
# date +"%T%p" -s "12:10:30PM"
Como faço para configurar o relógio do hardware?
Use a seguinte sintaxe para definir o relógio de hardware a partir do relógio do sistema e atualizar os timestamps no arquivo /etc/adjtime. Por exemplo:
# hwclock --systohc
OU
# hwclock -w
Quer definir o Relógio do Sistema a partir do Relógio do Hardware? Tente:
# hwclock --hctosys
OU
# hwclock -s
Uma nota sobre o sistema Linux baseado em systemd
Com o sistema Linux baseado em systemd, você precisa usar o comando timedatectl para definir ou visualizar a data e hora atuais. A maioria das distros modernas, como RHEL/CentOS v.7.x+, Fedora Linux, Debian, Ubuntu, Arch Linux e outros sistemas baseados em systemd, precisam do utilitário timedatectl. Observe que o comando acima deve funcionar em sistemas modernos também.
Como sei que estou usando systemd ou sys v init ou OpenRC como um sistema init no Linux?
Execute o comando type ou command command para ver o que ele diz. Por exemplo:
$ type systemd
Você obtém alguma saída? Aqui está o que o Ubuntu 20.04 LTS retornou:
systemd é hash (/usr/bin/systemd)
Em outras palavras, estou usando systemd como init. O seguinte erro do Alpine Linux versão 3.18 indica que não estou usando distro Linux baseada em systemd para init:
-bash: tipo: systemd: não encontrado
Você pode ver a versão do systemd digitando o seguinte comando systemctl:
$ systemctl --version
Saídas:
sistemad 253 (253.4-1-arquitetura) +PAM +AUDITORIA -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT hierarquia padrão=unificado
OBSERVAÇÃO: Conforme explicado anteriormente, o comando timedatectl só funciona quando você confirma o uso de uma distribuição Linux baseada no sistema.
Usando o comando timedatectl exibe a data e hora atuais
Digite o seguinte comando timedatectl em distribuições Linux baseadas em systemd:
$ timedatectl
Como altero a data atual usando o comando timedatectl?
Para alterar a data atual, digite o seguinte comando como usuário root:
# timedatectl set-time YYYY-MM-DD
OU
$ sudo timedatectl set-time YYYY-MM-DD
Por exemplo, defina a data atual como 2015-12-01 (1º de dezembro de 2015): Exemplos de saída:
# timedatectl set-time '2015-12-01'
# timedatectl
Hora local: terça-feira, 01/12/2015, 00:00:03 EST Horário universal: Ter 2015-12-01 05:00:03 UTC Horário RTC: Ter 2015-12-01 05:00:03 Fuso horário: América/Nova_Iorque (EST, -0500) NTP habilitado: não NTP sincronizado: não RTC em TZ local: não DST ativo: não Última alteração do horário de verão: o horário de verão terminou em Dom 2015-11-01 01:59:59 EDT Domingo, 01/11/2015 01:00:00 EST Próxima mudança de horário de verão: o horário de verão começa (o relógio avança uma hora) às Domingo, 13/03/2016 01:59:59 EST Dom 2016-03-13 03:00:00 EDT
Para alterar a data e a hora, use a seguinte sintaxe:# timedatectl set-time YYYY-MM-DD HH:MM:SS
Onde,
- HH:Uma hora.
- MM :Um minuto.
- SS: Um segundo, todo digitado em formato de dois dígitos.
- YYYY: Um ano de quatro dígitos.
- MM: Um mês de dois dígitos.
- DD: Um dia do mês com dois dígitos.
Por exemplo, defina a data ’23 de novembro de 2015′ e a hora como ‘8:10:40 am’, digite:# timedatectl set-time '2015-11-23 08:10:40'
# date
Como faço para definir apenas a hora atual?
A sintaxe é: Saídas de exemplo:# timedatectl set-time HH:MM:SS
# timedatectl set-time '10:42:43'
# date
Seg, 23 de novembro 08:10:41 EST de 2015
Como defino o fuso horário usando o comando timedatectl?
Para ver uma lista de todos os fusos horários disponíveis, digite: Para definir o fuso horário como ‘Ásia/Calcutá’, digite: Verifique: Saídas:$ timedatectl list-timezones
$ timedatectl list-timezones | more
$ timedatectl list-timezones | grep -i asia
$ timedatectl list-timezones | grep America/New# timedatectl set-timezone 'Asia/Kolkata'
# timedatectl
Hora local: Seg 2015-11-23 08:17:04 IST Horário universal: segunda-feira, 23/11/2015, 02:47:04 UTC Horário RTC: Seg 2015-11-23 13:16:09 Fuso horário: Ásia/Kolkata (IST, +0530) NTP habilitado: não NTP sincronizado: não RTC em TZ local: não DST ativo: n/a
Como sincronizo o relógio do sistema com um servidor remoto usando NTP?
Basta digitar o seguinte comando:# timedatectl set-ntp yes
Verifique:$ timedatectl
Saídas de exemplo:
Hora local: Seg 2015-11-23 08:18:49 IST Horário universal: segunda-feira, 23/11/2015, 02:48:49 UTC Horário RTC: Seg 2015-11-23 02:48:50 Fuso horário: Ásia/Kolkata (IST, +0530) NTP habilitado: sim NTP sincronizado: sim RTC em TZ local: não DST ativo: n/a
Conclusão
Usuários Linux podem usar o comando date para imprimir ou definir a data e hora do sistema. Usuários Linux baseados em Systemd podem usar timedatectl para controlar a hora e data do sistema. Leia as seguintes páginas do manual usando o comando man ou o comando help :$ man 8 hwclock
$ man 1 date
$ man 8 timedatectl
$ timedatectl --help | grep -Ew -- 'timezone|status'
Deixe um comentário