我的电脑说:
$ uptime
10:20:35 up 1:46, 3 users, load average: 0,03, 0,10, 0,13
Run Code Online (Sandbox Code Playgroud)
如果我检查,last我会看到:
reboot system boot 3.19.0-51-generi Tue Apr 12 08:34 - 10:20 (01:45)
Run Code Online (Sandbox Code Playgroud)
然后我检查:
$ ls -l /var/log/boot.log
-rw-r--r-- 1 root root 4734 Apr 12 08:34 boot.log
Run Code Online (Sandbox Code Playgroud)
然后我在/var/log/syslog今天的第一行看到:
Apr 12 08:34:39 PC... rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="820" x-info="http://www.rsyslog.com"] start
Run Code Online (Sandbox Code Playgroud)
所以一切似乎都集中在8:34我的机器启动的时候。
但是,我想知道:确切的时间uptime使用是什么?是uptime启动并检查某个文件的进程还是硬件上的某个进程?
我正在运行 Ubuntu 14.04。
背景:当我的服务器关闭时,我需要收到警报。当服务器关闭时,Sysload 收集器可能无法发送任何警报。为了在服务器关闭时收到警报,我有一个外部源(服务器)来检测它。
问题:有什么方法(我更喜欢 bash 脚本)来检测我的服务器何时关闭或脱机并发送警报消息(电子邮件 + 短信)?
我的 PC 上安装了一个1 核 CPU。有时,uptime显示负载 >1。这怎么可能,这意味着什么?
编辑:值上升到 2.4
我知道该uptime命令,但它自启动后返回秒数,所以如果我只是从当前时间戳中减去该数字,理论上如果在我读取正常运行时间和当前时间戳后秒发生变化,我可以获得不同的结果。uptime -s是我想要的,但它在 centos 上不可用(顺便说一句,它是如何计算的?)。我可以只获取 /proc 目录的 ctime 吗?这似乎给了我正确的数字,但我想知道是否每个 linux 系统都在启动时创建了 /proc。
我想以/proc/uptime良好的格式显示为:
DD:HH:MM:SS
Run Code Online (Sandbox Code Playgroud)
/proc/uptime 给我以秒为单位的系统时间,是否有将秒转换为这种格式的标准解决方案?
我正在学习 Python。到现在为止,我一直只做基本的 Python 编码。一天前,我检查了tree命令的python实现。突然我想到为uptime. 我不知道它是用哪种语言实现的,以及克隆它所涉及的复杂性是什么。
但是我找不到它的源代码。我正在使用 Fedora 14。安装了 kernel-devel 包。我做了,whereis uptime但是/usr/bin/uptime使用 vim 打开时生成的文件显示奇怪的符号。谷歌搜索其源代码也无法产生预期的结果。我在哪里可以找到它的源代码?
我的服务器似乎一直在重启。我想知道为什么。
我怎么知道上次重新启动服务器的时间以及为什么?
root pts/0 139.193.156.125 Thu Aug 8 21:10 still logged in
reboot system boot 2.6.32-358.11.1. Thu Aug 8 20:38 - 21:11 (00:33)
reboot system boot 2.6.32-358.11.1. Thu Aug 8 20:15 - 21:11 (00:56)
reboot system boot 2.6.32-358.11.1. Thu Aug 8 19:16 - 21:11 (01:55)
reboot system boot 2.6.32-358.11.1. Thu Aug 8 18:56 - 21:11 (02:14)
reboot system boot 2.6.32-358.11.1. Thu Aug 8 18:24 - 21:11 (02:47)
root pts/1 139.193.156.125 Thu Aug 8 18:16 - crash (00:07)
root pts/0 195.254.135.181 …Run Code Online (Sandbox Code Playgroud) 我将我的笔记本电脑置于挂起模式,稍后将其唤醒,现在它显示正常运行时间约为 23 小时(使用uptime),这显然不是真的。我怀疑uptime只是返回启动时和现在的时间戳之间的差异。
有没有办法显示正常运行时间,不包括在挂起和休眠等低功耗模式下花费的时间?
我有一个运行 Redis 的 Ubuntu 服务器,它遇到了高负载问题。
# uptime
05:43:53 up 19 min, 1 user, load average: 2.96, 2.07, 1.52
Run Code Online (Sandbox Code Playgroud)
# sar -q
05:24:00 AM LINUX RESTART
05:25:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
05:35:04 AM 0 116 3.41 2.27 1.20 4
Average: 0 116 3.41 2.27 1.20 4
Run Code Online (Sandbox Code Playgroud)
34 个开放redis-server连接:
$ sudo netstat -natp | grep redis-server | wc -l
34
Run Code Online (Sandbox Code Playgroud)
$ free -g
total used free …Run Code Online (Sandbox Code Playgroud) uptime ×10
linux ×3
load-average ×2
fedora ×1
linux-kernel ×1
monitoring ×1
reboot ×1
sar ×1
shell ×1
sleep ×1
source ×1
time ×1