Visualizar a data e hora de um servidor SNTP e atualizar na BIOS do sistema
Publicado por Fábio C. Barrionuevo da Luz (última atualização em 10/08/2010)
[ Hits: 7.916 ]
Script python para visualizar a data e hora de um servidor SNTP e atualizar na BIOS do sistema - hwclock.
Ele utiliza uma consulta a um servidor SNTP da Apple. É necessário ter instalado o hwclock e o date.
Executar:
# ./setclock.py
Mostra a hora do servidor SNTP.
Use o parâmetro --set para atualizar a BIOS do sistema. Ex.:
# ./setclock.py --set
O script só atualiza a hora se for utilizado como root.
O setclock.py só funciona se a rede já estiver configurada e houver acesso a internet.
Nome do Script: setclock.py
Codigo fonte:
#!/usr/bin/python
from socket import *
import struct,os,time,sys
#Modificado por Fabio C. Barrionuevo da Luz, Jul/2010
#use "setclock.py" para imprimir a hora do servidor sntp
#use como super usuario "setclock.py --set" para mudar a hora da BIOS e do sistema
#OBS: por usar um servidor sntp, a confiabilidade da hora pode não ser a esperada.
#pode haver atrasos ou adiantamentos.
#para mais informacoes, consulte:
#http://ntp.br/faq.html#5 , http://ntp.br/, www.ntp.org,
# Script to set Linux hardware clock (/usr/sbin/hwclock or /sbin/hwclock) from an NTP
# time server. Run as "setclock.py" to simply print the time from
# the NTP server. Run as "setclock.py --set" to set the Linux
# hardware clock (as the super user, of course).
# Based on Simon Foster's simple SNTP client from ASPN Python cookbook.
# Adapted by Paul Rubin; this script lives at:
# http://www.nightsong.com/phr/python/setclock.py
time_server = ('time.apple.com', 123)
# time.apple.com is a stratum 2 time server. (123 is the SNTP port number).
# More servers info can be found at
#
# http://www.eecis.udel.edu/~mills/ntp/servers.htm
#
# Note it's considered antisocial to use a stratum 1 server (like NIST)
# for purposes like this which don't need extreme accuracy (i.e. syncing
# your own big NTP network). See www.ntp.org for more info.
#
# You could also use time.windows.com (Microsoft server) which syncs
# all Windows XP machines everywhere, so it can presumably handle lots
# of clients.
# number of seconds between NTP epoch (1900) and Unix epoch (1970).
TIME1970 = 2208988800L # Thanks to F.Lundh
client = socket( AF_INET, SOCK_DGRAM )
data = '\x1b' + 47 * '{FONTE}'
client.sendto(data, time_server)
data, address = client.recvfrom( 1024 )
if data:
print 'Resposta recebida de', address,'\n'
t = struct.unpack( '!12I', data )[10]
if t == 0:
raise 'resposta invalida'
ct = time.ctime(t - TIME1970)
print 'Data/Hora atual = %s\n' % ct
if len(sys.argv) > 1 and sys.argv[1] == "--set":
print 'Atualizando hora da BIOS'
print 'Hora da Bios modificada de:'
os.system("date")
#muda a hora da bios
os.system("hwclock --set '--date=%s'"% ct)
#copia a hora da bios para a hora do sistema
os.system("hwclock --hctosys")
print 'para:'
os.system("date")
else:
raise 'nenhuma informacao retornada'
Cup - um gerenciador de notas simples
Algoritmo de Dijkstra em Python com visualização em PyGraphviz
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









