蚊章汇 - 运行时间
type: channel
link: https://linuxcn.bwsl.wang/tag/%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4/
items: 生成 Linux 运行时间报告的 Bash 脚本
items: 如何记录 Linux 的系统运行时间的统计信息
items: Linux Uptime 命令，让你知道你的系统运行了多久

生成 Linux 运行时间报告的 Bash 脚本
type: item
date: 2019-10-13T19:47:35+08:00
description: 出于一些原因，你可能需要每月收集一次 Linux 系统运行时间报告。如果是这样，你可以根据需要使用以下 bash 脚本 之一。我们为什么要收集这份报告？在一段时间后重启 Linux 服务器是解决某些未解决问题的好方法。（LCTT 译注：本文这些观点值得商榷，很多服务器可以稳定运行几千天，尤其是有了内核热补丁之后，启动并不是必须的。）建议每 180 天重新启动一次。但时间段也许取决于你公司的政策。如果你已经长时间运行服务器而没有重启。这可能导致服务器上出现一些性能或内存问题，我在许多服务器上都注意到了这一点。这些脚本一次性提供了所有系统运行报告。什么是 uptime 命令uptime 命令将告诉你系统已经运行了多长时间。它在一行中显示以下信息：当前时间、系统运行了多长时间、当前登录了多少用户以及过去 1、5 和 15 分钟的平均系统负载。什么是 tuptime?tuptime 是用于报告系统的历史和统计运行时间的工具，可在重启之间保存。它类似于 uptime 命令，但输出更有趣。1）检查 Linux 系统运行时间的 Bash 脚本该 bash 脚本将收集所有服务器正常运行时间，并将报告发送到给定的电子邮箱地址。请替换为你的电子邮箱地址，而不是用我们的，否则你将不会收到邮件。# vi /opt/scripts/system-uptime-script.sh #!/bin/bash > /tmp/uptime-report.out for host in cat /tmp/servers.txt do echo -n "$host: " ssh $host uptime | awk '{print $3,$4}' | sed 's/,//' done | column -t >> /tmp/uptime-report.out cat /tmp/uptime-report.out | mail -s "Linux Servers Uptime Report" "2daygeek@gmail.com"给 system-uptime-script.sh 设置可执行权限。$ chmod +x /opt/scripts/system-uptime-script.sh最后运行 bash 脚本获取输出。# sh /opt/scripts/system-uptime-script.sh你将收到类似以下的报告。# cat /tmp/uptime-report.out 192.168.1.5: 2 days 192.168.1.6: 15 days 192.168.1.7: 30 days 192.168.1.8: 7 days 192.168.1.9: 67 days 192.168.1.10: 130 days 192.168.1.11: 23 days2）检查 Linux 系统是否运行了 30 天以上的 Bash 脚本此 bash 脚本会收集运行 30 天以上的服务器，并将报告发送到指定的邮箱地址。你可以根据需要更改天数。# vi /opt/scripts/system-uptime-script-1.sh #!/bin/bash > /tmp/uptime-report-1.out for host in cat /tmp/servers.txt do echo -n "$host: " ssh $host uptime | awk '{print $3,$4}' | sed 's/,//' done | column -t >> /tmp/uptime-report-1.out cat /tmp/uptime-report-1.out | awk ' $2 >= 30' > /tmp/uptime-report-2.out cat /tmp/uptime-report-2.out | mail -s "Linux Servers Uptime Report" "2daygeek@gmail.com"给 system-uptime-script-1.sh 设置可执行权限。$ chmod +x /opt/scripts/system-uptime-script-1.sh最后添加一条 cronjob 来自动执行。它会在每天早上 7 点运行。# crontab -e 0 7 * * * /bin/bash /opt/scripts/system-uptime-script-1.sh注意： 你会在每天早上 7 点会收到一封电子邮件提醒，它是昨天的详情。你将收到类似下面的报告。# cat /tmp/uptime-report-2.out 192.168.1.7: 30 days 192.168.1.9: 67 days 192.168.1.10: 130…

如何记录 Linux 的系统运行时间的统计信息
type: item
date: 2018-04-06T06:57:56+08:00
description: Linux/Unix 系统管理员对服务器的系统运行时间有一种奇怪的痴迷。这里有一个关于这个主题的 xkcd 漫画，一个好的系统管理员是一股不可阻挡的力量，他伫立在你家猫咪博客的服务器之前，对抗黑暗势力。我们可以使用 uptime 命令或 w 命令 或 top 命令来判断 Linux 系统运行了多久。我可以使用 tuptime 工具保留每次重新启动的运行时间，以获得系统运行时间的历史和统计报告。这就像 uptime 命令一样，但输出结果更令人印象深刻。最近我发现了另一种称为 uptimed 的工具，用于记录关于机器的系统运行时间和统计信息。让我们看看如何使用 Linux 操作系统上的 uptimed 和 uprecords 来获得运行时间的记录统计信息。查找系统运行时间非常简单，只需在基于 Linux 的系统上键入以下命令即可：$ uptime -p up 2 weeks, 4 days, 7 hours, 28 minutes 要保留有关 uptime 的历史统计信息，请使用 tuptime 或 uptimed 工具。安装 uptimed安装 uptimed 的最简单的方式是通过你的软件包管理器，比如 apt/apt-get/yum 这些你的 Linux 发行版的朋友。在 Debian/Ubuntu Linux 上安装 uptimed键入以下 apt 命令/apt-get 命令：$ sudo apt-get install uptimed 示例输出：Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libuptimed0 The following NEW packages will be installed: libuptimed0 uptimed 0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded. Need to get 40.7 kB of archives. After this operation, 228 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://mirrors.linode.com/ubuntu xenial/universe amd64 libuptimed0 amd64 1:0.3.17-4 [9,050 B] Get:2 http://mirrors.linode.com/ubuntu xenial/universe amd64 uptimed amd64 1:0.3.17-4 [31.6 kB] Fetched 40.7 kB in 0s (2,738 kB/s) Preconfiguring packages ... Selecting previously unselected package libuptimed0. (Reading database ... 39163 files and directories currently installed.) Preparing to unpack .../libuptimed0_1%3a0.3.17-4_amd64.deb ... Unpacking libuptimed0 (1:0.3.17-4) ... Selecting previously unselected package uptimed. Preparing to unpack .../uptimed_1%3a0.3.17-4_amd64.deb ... Unpacking uptimed (1:0.3.17-4) ... Processing triggers for systemd (229-4ubuntu21) ... Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for man-db (2.7.5-1) ... Setting up libuptimed0 (1:0.3.17-4) ... Setting up uptimed (1:0.3.17-4) ... Processing triggers for libc-bin (2.23-0ubuntu9) ... Processing triggers for systemd (229-4ubu…

Linux Uptime 命令，让你知道你的系统运行了多久
type: item
date: 2013-12-04T06:31:00+08:00
description: 对于一些人来说系统运行了多久是无关紧要的，但是对于服务器管理员来说，这是相当重要的信息。服务器在运行重要应用的时候，必须尽量保证长时间的稳定运行，有时候甚至要求零宕机。那么我们怎么才能知道服务器运行了多久呢？在Linux 下，我们可以使用uptime 命令，而且此命令不必使用root 权限。uptime 命令在系统中已经默认安装了。语法如下：$ uptime 你会在屏幕上看到如下显示：这些信息保存在/proc/uptime 文件中，虽然是以文本方式保存，但是这些数据却不能直接显示，这就需要我们使用uptime 命令来翻译它。以下是如何解读uptime 提供的信息：系统时间在图1中，左起第一条信息是14:04:39，这就是当前系统时间，以24小时格式输出。系统运行时间第二条信息Up 1004 days, 12:20，这是显示你的系统运行时间。图1 显示你的系统已经运行了1004天12小时20分钟，如果你的系统没有运行超过24小时，这里将只会显示小时分钟或者只显示分钟。注意图2、图3的信息，当系统重启后将会清零。已登录用户的数量第三部分的信息是显示已登陆用户的数量。在图1中，显示的是1 user ，即当前登录用户数量。当多个用户在同时登陆系统时，uptime 命令将告诉你用户的数量。平均负载量最后一个信息是系统的平均负载量。回到图1，你看到这样带两位小数的数字0.25, 0.25, 0.19可以换算成百分比，即0.25和0.19分别代表着25%和19%。0.25, 0.25, 0.19分别代表着过去1分钟、5分钟、15分钟系统的平均负载量。负载量越低意味着你的系统性能越好。这就是uptime 命令的日常使用指导，如果想获取更详细的信息，请通过输入man uptime 进入uptime 命令的manual 页面来查看。你的机器已经运行多久了？贴出你的uptime给大家看看吧。via: http://linoxide.com/linux-command/linux-uptime-command/译者：NearTan 校对：Caroline本文由 LCTT 原创翻译，Linux中国 荣誉推出