Linux服务器我们每天都在打交道,尤其是Linux工程师。为了保证服务器的安全和性能,我们经常需要对服务器的一些状态进行监控,以保证工作能够顺利进行。本文介绍的命令不仅适用于服务器监控,也适用于我们日常的开发。1、watchwatch命令是我们经常使用的。它的基本功能是按照指定的频率重复执行某条命令。使用这个命令,我们可以重复调用一些命令来达到监控服务器的作用。默认情况下,watch命令的执行周期是2秒,但是我们可以使用-n选项来指定运行频率。比如我们想每5秒执行一次date命令,我们可以这样执行:$watch-n5date一台服务器肯定有很多人在用,尤其是本部门的小伙伴。至于这些朋友有没有浑水摸鱼,我们可以通过一些命令来监控。我们可以每隔10秒执行一次who命令,看看谁在使用服务器。$watch-n10whoEvery10.0s:whobutterfly:TueJan2316:02:032019shs:02019-01-2309:45(:0)dorypts/02019-01-2315:50(192.168.0.5)alvinpts/12019-01-2316:01(192.168.0.15)sharkpts/32019-01-2311:11(192.168.0.27)如果发现系统运行很慢,我们可以调用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'Every5.0s:ps-ef|wc-lbutterfly:TueJan2316:11:542019245如果想动态知道服务器的内存使用情况,可以重复执行free命令.$watch-n5free-mEvery5.0s:free-mbutterfly:TueJan2316:34:092019totalusedfreesharedbuff/cacheavailableMem:595977632761219064878Swap:204702047当然不止这些,我们还可以重复调用很多命令来监控服务器的一些关键参数,2.top使用通过top命令,我们可以知道系统的很多关键参数,而且是动态更新的。默认情况下,top监控系统的整体状态。如果我们只想知道某个人的用法,可以使用-u选项来指定这个人。$top-ualvintop-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:2048.0total,2048.0free,0.0used.4878.4availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND23026alvin2004634078206504S0.00.10:00.05systemd23033alvin200149660314072S0.00.10:00.00(sd-pam)23125alvin2006339651004092S0.00.10:00.00sshd23128alvin2001683656364284S0.00.10:00.03zsh在这个结果里,你不仅仅可以看到alvin这个用户运行的所有的进程数,也可以看到每个进程所消耗系统资源(CPU、内存),同时还能看到整个系统的关键参数。3.ac如果想知道每个用户登录服务器所花费的时间,可以使用ac命令。此命令要求您安装acct包(Debian)或psacct包(RHEL、Centos)。如果我们想知道所有用户登录服务器所用时间的总和,可以不带任何参数直接运行ac命令。$actotal1261.72如果我们想知道每个用户使用的时间,可以加上-p选项。$ac-pshark5.24alvin5.52shs1251.00total1261.76我们还可以加上-d选项,查看用户每天使用服务器的具体时间总和。$ac-d|tail-10Jan11total0.05Jan12total1.36Jan13total16.39Jan15total55.33Jan16total38.02Jan17total28.51Jan19total48.66Jan20total1.37Jan22total23.48Todaytotal9.83总结我们可以使用很多命令来监视系统的运行状态一定的命令来监视一些参数的变化。top命令可以查看一个用户运行的进程数和消耗的资源,而ac命令可以查看每个用户使用的服务器时间。你经常使用哪个命令?本文经授权转载自公众号「良墟Linux」。世界500强外企Linux开发工程师梁旭,在公众号分享大量Linux干货,欢迎关注!
