Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

285
Visualizações
Obtener tiempo de actividad del sistema en Ruby

Estoy buscando una mejor manera de recuperar el tiempo de actividad de los sistemas. Mi método actual funciona, pero siento que las cosas se pueden hacer mejor.

 def uptime_range days_up = `uptime | awk {'print$3'}`.chomp.to_i hours_up = `uptime | awk {'print$5'}`.delete(',').chomp seconds_up = time_to_seconds(days_up,hours_up) started = Time.now - seconds_up "#{started.strftime('%Y.%m.%d.%H.%M')}-#{Time.now.strftime('%Y.%m.%d.%H.%M')}" end
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En los sistemas Linux, puede abrir /proc/uptime y leer los segundos desde que se inició la máquina.

 def started Time.now - IO.read('/proc/uptime').split[0].to_f end

Editar: cambiado to_i a to_f. Con to_i, es más probable que varíe el valor de iniciado cuando se muestra como una cadena o un número entero, especialmente si el tiempo de arranque estuvo cerca de la mitad de un segundo en lugar de al principio o al final de un segundo.

over 4 years ago · Santiago Trujillo Relatório

0

Puede verificar la gema sysinfo . Debería dar acceso independiente del sistema a los datos de tiempo de actividad.

over 4 years ago · Santiago Trujillo Relatório

0

Un rubygem llamado linux_stat puede hacer eso bastante bien:

 require 'linux_stat' LinuxStat::OS.uptime => {:hour=>40, :minute=>46, :second=>19.75}

Código copiado de aquí .

Pero si no tiene ganas de usar otra gema para esta tarea trivial, puede hacer esto:

 uptime = IO.read('/proc/uptime').to_f uptime_i = uptime.to_i puts({ hour: uptime_i / 3600, minute: uptime_i % 3600 / 60, second: uptime.%(3600).%(60).round(2) })

Que imprime:

 {:hour=>0, :minute=>39, :second=>54.89}
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda