歡迎光臨
每天分享高質量文章

Linux 上查看系統/服務器運行時間的 11 種方法 | Linux 中國

你是否想知道自己的 Linux 系統正常運行了多長時間而沒有宕機?系統是什麼時候啟動的?
— Magesh Maruthamuthu

 

致謝
譯自 | 2daygeek.com 
作者 | Magesh Maruthamuthu
譯者 | LCTT / LuMing

你是否想知道自己的 Linux 系統正常運行了多長時間而沒有宕機?系統是什麼時候啟動的?

Linux 上有多個查看服務器/系統運行時間的命令,大多數用戶喜歡使用標準並且很有名的 uptime 命令獲取這些具體的信息。

服務器的運行時間對一些用戶來說不那麼重要,但是當服務器運行諸如在線商城門戶portal、網上銀行門戶等關鍵任務應用mission-critical applications時,它對於服務器管理員server adminstrators來說就至關重要。

它必須做到零宕機,因為一旦停機就會影響到數百萬用戶。

正如我所說,許多命令都可以讓用戶看到 Linux 服務器的運行時間。在這篇教程里我會教你如何使用下麵 11 種方式來查看。

正常運行時間uptime指的是服務器自從上次關閉或重啟以來經過的時間。

uptime 命令獲取 /proc 檔案中的詳細信息並輸出正常運行時間,而 /proc 檔案並不適合人直接看。

以下這些命令會輸出系統運行和啟動的時間。也會顯示一些額外的信息。

方法 1:使用 uptime 命令

uptime 命令會告訴你系統運行了多長時間。它會用一行顯示以下信息。

當前時間、系統運行時間、當前登錄用戶的數量、過去 1 分鐘/5 分鐘/15 分鐘系統負載的均值。

  1. # uptime
  2. 08:34:29 up 21 days,  5:46,  1 user,  load average: 0.06, 0.04, 0.00

方法 2:使用 w 命令

w 命令為每個登錄進系統的用戶,每個用戶當前所做的事情,所有活動的負載對計算機的影響提供了一個快速的概要。這個單一命令結合了多個 Unix 程式:whouptime,和 ps -a的結果。

  1. # w
  2. 08:35:14 up 21 days,  5:47,  1 user,  load average: 0.26, 0.09, 0.02
  3. USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
  4. root     pts/1    103.5.134.167    08:34    0.00s  0.01s  0.00s w

方法 3:使用 top 命令

top 命令是 Linux 上監視實時系統行程的基礎命令之一。它顯示系統信息和運行行程的信息,例如正常運行時間、平均負載、運行的任務、登錄用戶數量、CPU 數量 & CPU 利用率、記憶體 & 交換空間信息。

推薦閱讀:TOP 命令監視服務器性能的例子[1]

  1. # top -c
  2. top - 08:36:01 up 21 days,  5:48,  1 user,  load average: 0.12, 0.08, 0.02
  3. Tasks:  98 total,   1 running,  97 sleeping,   0 stopped,   0 zombie
  4. Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
  5. Mem:   1872888k total,  1454644k used,   418244k free,   175804k buffers
  6. Swap:  2097148k total,        0k used,  2097148k free,  1098140k cached
  7.  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  8.    1 root      20   0 19340 1492 1172 S  0.0  0.1   0:01.04 /sbin/init
  9.    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 [kthreadd]
  10.    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 [migration/0]
  11.    4 root      20   0     0    0    0 S  0.0  0.0   0:34.32 [ksoftirqd/0]
  12.    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 [stopper/0]

方法 4:使用 who 命令

who 命令列出當前登錄進計算機的用戶。who 命令與 w 命令類似,但後者還包含額外的資料和統計信息。

  1. # who -b
  2. system boot 2018-04-12 02:48

方法 5:使用 last 命令

last 命令列出最近登錄過的用戶。last 回溯 /var/log/wtmp 檔案並顯示自從檔案創建後登錄進(出)的用戶。

  1. # last reboot -F | head -1 | awk '{print $5,$6,$7,$8,$9}'
  2. Thu Apr 12 02:48:04 2018

方法 6:使用 /proc/uptime 檔案

這個檔案中包含系統上次啟動後運行時間的詳細信息。/proc/uptime 的輸出相當精簡。

第一個數字是系統自從啟動的總秒數。第二個數字是總時間中系統空閑所花費的時間,以秒為單位。

  1. # cat /proc/uptime
  2. 1835457.68 1809207.16

方法 7:使用 tuptime 命令

tuptime 是一個彙報系統運行時間的工具,輸出歷史信息並作以統計,保留重啟之間的資料。和 uptime 命令很像,但輸出更有意思一些。

  1. $ tuptime

方法 8:使用 htop 命令

htop 是運行在 Linux 上的一個交互式行程查看器,是 Hisham 使用 ncurses 庫開發的。htop 比起 top 有很多的特性和選項。

推薦閱讀: 使用 Htop 命令監控系統資源[2]

  1. # htop
  2.  CPU[|                         0.5%]     Tasks: 48, 5 thr; 1 running
  3.  Mem[|||||||||||||||     165/1828MB]     Load average: 0.10 0.05 0.01
  4.  Swp[                      0/2047MB]     Uptime: 21 days, 05:52:35
  5.  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  6. 29166 root       20   0  110M  2484  1240 R  0.0  0.1  0:00.03 htop
  7. 29580 root       20   0 11464  3500  1032 S  0.0  0.2 55:15.97 /bin/sh ./OSWatcher.sh 10 1
  8.    1 root       20   0 19340  1492  1172 S  0.0  0.1  0:01.04 /sbin/init
  9.  486 root       16  -4 10780   900   348 S  0.0  0.0  0:00.07 /sbin/udevd -d
  10.  748 root       18  -2 10780   932   360 S  0.0  0.0  0:00.00 /sbin/udevd -d

方法 9:使用 glances 命令

glances 是一個跨平臺的基於 curses 庫的監控工具,它是使用 python 編寫的。可以說它非常強大,僅用一點空間就能獲得很多信息。它使用 psutil 庫從系統中獲取信息。

glances 可以監控 CPU、記憶體、負載、行程、網絡接口、磁盤 I/O、磁盤陣列RAID、傳感器、檔案系統(與檔案夾)、容器、監視器、Alert 日誌、系統信息、運行時間、快速查看Quicklook(CPU,記憶體、負載)等。

推薦閱讀: Glances (集大成)– Linux 上高級的實時系統運行監控工具[3]

  1. glances
  2. ubuntu (Ubuntu 17.10 64bit / Linux 4.13.0-37-generic) - IP 192.168.1.6/24                Uptime: 21 days, 05:55:15
  3. CPU  [|||||||||||||||||||||    90.6%]   CPU -    90.6%  nice:     0.0%  ctx_sw:    4K      MEM \   78.4%  active:     942M      SWAP -    5.9%      LOAD    2-core
  4. MEM  [||||||||||||||||         78.0%]   user:    55.1%  irq:      0.0%  inter:   1797      total:  1.95G  inactive:   562M      total:   12.4G      1 min:    4.35
  5. SWAP [|                         5.9%]   system:  32.4%  iowait:   1.8%  sw_int:   897      used:   1.53G  buffers:   14.8M      used:     749M      5 min:    4.38
  6.                                        idle:     7.6%  steal:    0.0%                     free:    431M  cached:     273M      free:    11.7G      15 min:   3.38
  7. NETWORK     Rx/s   Tx/s   TASKS 211 (735 thr), 4 run, 207 slp, 0 oth sorted automatically by memory_percent, flat view
  8. docker0       0b   232b
  9. enp0s3      12Kb    4Kb   Systemd          7    Services loaded: 197 active: 196 failed: 1
  10. lo          616b   616b
  11. _h478e48e     0b   232b     CPU%  MEM%  VIRT   RES   PID USER        NI S     TIME+   R/s   W/s Command
  12.                            63.8  18.9 2.33G  377M  2536 daygeek      0 R   5:57.78     0     0 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
  13. DefaultGateway     83ms     78.5  10.9 3.46G  217M  2039 daygeek      0 S  21:07.46     0     0 /usr/bin/gnome-shell
  14.                             8.5  10.1 2.32G  201M  2464 daygeek      0 S   8:45.69     0     0 /usr/lib/firefox/firefox -new-window
  15. DISK I/O     R/s    W/s      1.1   8.5 2.19G  170M  2653 daygeek      0 S   2:56.29     0     0 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
  16. dm-0           0      0      1.7   7.2 2.15G  143M  2880 daygeek      0 S   7:10.46     0     0 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
  17. sda1       9.46M    12K      0.0   4.9 1.78G 97.2M  6125 daygeek      0 S   1:36.57     0     0 /usr/lib/firefox/firefox -contentproc -childID 7 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51

方法 10:使用 stat 命令

stat 命令顯示指定檔案或檔案系統的詳細狀態。

  1. # stat /var/log/dmesg | grep Modify
  2. Modify: 2018-04-12 02:48:04.027999943 -0400

方法 11:使用 procinfo 命令

procinfo 從 /proc 檔案夾下收集一些系統資料並將其很好的格式化輸出在標準輸出設備上。

  1. # procinfo | grep Bootup
  2. Bootup: Fri Apr 20 19:40:14 2018 Load average: 0.16 0.05 0.06 1/138 16615

via: https://www.2daygeek.com/11-methods-to-find-check-system-server-uptime-in-linux/

作者:Magesh Maruthamuthu[5] 選題:lujun9972 譯者:LuuMing 校對:wxy

赞(0)

分享創造快樂