我正在寻找一种更好的方法来检索系统正常运行时间。我目前的方法有效,但我觉得事情可以做得更好。
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
最佳答案
在 Linux 系统上,您可以打开/proc/uptime 并读取自机器启动以来的秒数。
def started
Time.now - IO.read('/proc/uptime').split[0].to_f
end
编辑:将 to_i 改为 to_f。使用 to_i,当显示为字符串或整数时,started 的值更有可能发生变化,尤其是当启动时间接近一秒的中间而不是一秒的开始或结束时。
关于ruby-on-rails - 在 ruby 中获取系统正常运行时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21174584/