当前位置: 首页 > 科技观察

监视Linux服务器活动的几个命令

时间:2023-03-18 22:44:38 科技观察

watch、top和ac命令为我们提供了一些非常有效的方法来监视Linux服务器上的活动。为了更方便的获取系统活动,Linux系统提供了一系列相关命令。在这篇文章中,我们就来看看这些对我们有很大帮助的命令。watch命令watch是一个命令,可以方便地重复检测Linux系统中的一系列数据,比如用户活动、运行进程、登录、内存使用等。这个命令实际上是重复运行特定的命令,每次都会覆盖之前的显示的输出,它提供了一种方便的方法来监视系统上发生的活动。从一个基本但不是特别有用的命令开始,你可以运行watch-n5date,你可以看到终端中显示的当前日期和时间,每五秒更新一次。您可能已经猜到,-n5选项指定运行下一个命令之前等待的秒数。默认为2秒。此命令将根据指定时间运行并更新显示,直到您使用^C停止它。Every5.0s:datebutterfly:WedJan2315:59:142019WedJan2315:59:14EST2019下面是一个更有趣的命令示例,您可以在其中监控服务器上的登录用户列表,这将按照指定的时间定期更新。如下所示,此命令将每10秒更新一次列表。注销的用户将从当前显示的列表中消失,新登录的用户将添加到表中。如果没有用户登录或再次注销,表单的显示将与以前没有任何不同。$watch-n10whoEvery10.0s:whobutterfly:TueJan2316:02:032019shs:02??019-01-2309:45(:0)dorypts/02019-01-2315:50(192.168.0.5)nemopts/12019-01-2316:01(192.168.0.15)sharkpts/32019-01-2311:11(192.168.0.27)如果你只是想看看有多少用户登录,你可以使用watch调用uptime命令来获取用户数和平均负载水平,以及系统的工作状态。$watchuptimeEvery2.0s:uptimebutterfly:TueJan2316:25:48201916:25:48up22days,4:38,3users,loadaverage:1.15,0.89,1.02如果你想用手表重复一个包含如果使用管道命令,则需要将命令用引号括起来,例如下面的命令显示每五秒运行了多少个进程。$watch-n5'ps-ef|wc-l'每5.0秒:ps-ef|wc-lbutterfly:TueJan2316:11:542019245要查看内存使用情况,您可能想尝试以下命令组合:$watch-n5free-mEvery5.0s:free-mbutterfly:TueJan2316:34:092019Every5.0s:free-mbutterfly:TueJan2316:34:092019totalusedfreesharedbuff/cacheavailableMem:595977632761219064878Swap:204702047你可以在观看后添加一些选项来查看进程在特定用户下运行,但top为此提供了更好的选择。top命令如果你想查看特定用户下的进程,top命令的-u选项可以帮助你轻松做到这一点。$top-unemotop-16:14:33up2days,4:27,3users,loadaverage:0.00,0.01,0.02Tasks:199total,1running,198sleeping,0stopped,0zombie%Cpu(s)):0.0us,0.2sy,0.0ni,99.8id,0.0wa,0.0hi,0.0si,0.0stMiBMem:5959.4total,3277.3free,776.4used,1905.8buff/cacheMiBSwap:2040.0total,02.4878.4availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND23026nemo2004634078206504S0.00.10:00.05systemd23033nemo200149660314072S0.00.2m0(smod31-0)nemo31-0(smod31-0)06339651004092S0.00.10:00.00sshd23128nemo2001683656364284S0.00.10:00.03zsh你可能看到的不仅仅是某个用户下的进程,还有每个进程占用的资源,以及整体的工作情况系统的。ac命令如果想查看系统中每个用户登录了多长时间,可以使用ac命令。运行该命令前,首先需要安装acct(Debian等)或psacct(RHEL、Centos等)包。ac命令有一系列选项,该命令从wtmp文件中提取数据。此示例显示用户最近登录的总小时数。$actotal1261.72此命令显示用户登录的总小时数:$ac-pshark5.24nemo5.52shs1251.00total1261.76此命令显示用户每天登录的总小时数:$ac-d|tail-10Jan11total0.05Jan12total1.36Jan13total16.39Jan15total55.33Jan16total38.02Jan17total28.51Jan19total48.66Jan20total1.37Jan22total23.48Todaytotal9.83可用于检查系统活动。watch命令允许您重复运行任何命令并观察输出如何变化。top命令是一个很好的选项,它专注于用户进程,并允许您以动态方式查看进程变化。您还可以使用ac命令来检查用户何时连接到系统。