首页
>
>
> 如何监视Linux服务器上的活动

如何监视Linux服务器上的活动

Linux系统提供了许多命令,可以轻松报告系统活动。在这篇文章中,我们将看一些特别有用的命令。

 

watch命令

该表的命令是那种可以很容易地反复检查各种系统上的数据-所有的命令确实运行命令的用户活动,正在运行的进程,登录,内存使用情况等,可重复指定,每次覆盖以前显示的输出,但这有助于监控系统上发生的事情。

要从一个非常基本但不是特别有用的命令开始,您可以运行watch -n 5 date并查看显示当前日期和时间每5秒更新一次。您可能已经猜到了,-n 5选项指定每次运行命令之间等待的秒数。默认值为2秒。该命令将运行并更新这样的显示,直到您使用^ c停止它。

Every 5.0s: date                             butterfly: Wed Jan 23 15:59:14 2019

 

Wed Jan 23 15:59:14 EST 2019

 

作为一个更有趣的命令示例,您可以查看登录服务器的任何人的更新列表。如上所述,此命令将每10秒更新一次。注销的用户将从当前显示中消失,登录的用户将进入查看状态。如果没有人登录或退出,除显示的时间外,显示将保持不变。

$ watch -n 10 who

Every 10.0s: who                             butterfly: Tue Jan 23 16:02:03 2019

 

shs      :0           2019-01-23 09:45 (:0)

dory     pts/0        2019-01-23 15:50 (192.168.0.5)

nemo     pts/1        2019-01-23 16:01 (192.168.0.15)

shark    pts/3        2019-01-23 11:11 (192.168.0.27)

 

如果您只想查看有多少用户登录,您可以通过监视调用uptime命令来获取用户数和负载平均值,以显示系统工作的难度。

$ watch -n 5 'ps -ef | wc -l'

Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019

 

245

 

要观察内存使用情况,您可以尝试这样的命令:

$ watch -n 5 free -m

Every 5.0s: free -m                          butterfly: Tue Jan 23 16:34:09 2019

 

              total        used        free      shared  buff/cache   available

Mem:           5959         776        3276          12        1906        4878

Swap:          2047           0        2047

 

您可以使用watch监视某个特定用户运行的进程,但  top  命令提供了更好的选项。

 

Top命令

如果您想观看某个特定用户的进程,top有一个理想的选项 - -u选项:

$ top -u nemo

top - 16:14:33 up 2 days,  4:27,  3 users,  load average: 0.00, 0.01, 0.02

Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie

%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

MiB Mem :   5959.4 total,   3277.3 free,    776.4 used,   1905.8 buff/cache

MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4878.4 avail Mem

 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

23026 nemo      20   0   46340   7820   6504 S   0.0   0.1   0:00.05 systemd

23033 nemo      20   0  149660   3140     72 S   0.0   0.1   0:00.00 (sd-pam)

23125 nemo      20   0   63396   5100   4092 S   0.0   0.1   0:00.00 sshd

23128 nemo      20   0   16836   5636   4284 S   0.0   0.1   0:00.03 zsh

 

您不仅可以查看用户正在运行的进程,还可以查看进程正在消耗的资源(CPU时间和内存)以及系统整体运行的难度。

 

ac命令

如果您想查看每个用户登录的时间,您可以使用ac命令。这需要安装acctDebian)或psacctRHELCentos等)软件包。

 

AC命令有许多选项,但是从目前的拉其数据的wtmp文件。这是一个示例,显示最近用户登录的总小时数:

 

$ ac

        total     1261.72

此命令按用户显示总小时数:

$ ac -p

        shark                                5.24

        nemo                                 5.52

        shs                               1251.00

        total     1261.76

ac命令显示用户登录的小时数的每日计数:

$ ac -d | tail -10

Jan 11  total        0.05

Jan 12  total        1.36

Jan 13  total       16.39

Jan 15  total       55.33

Jan 16  total       38.02

Jan 17  total       28.51

Jan 19  total       48.66

Jan 20  total        1.37

Jan 22  total       23.48

Today   total        9.83

 

Wrap-up

有许多用于检查系统活动的命令。该命令允许你在一个重复的方式有关的任何命令只是运行,看如何输出的变化。该Top命令是专注于用户进程是更好的选择,也循环的方式,可以让你看到的变化,因为它们发生,而  AC  命令检查用户连接的时间。


分享到: 1