<3> 使用shell监测机器

shell命令能够帮助你监测你的机器,包括当前机器上运行的程序(进程)、机器的磁盘使用情况等。熟悉这些监测可以在开发中避免一些如"存储打爆"之类的问题。

<进程监测>

进程是程序及其数据在计算机上的一次运行活动。进程会占用CPU、内存等资源,所以我们要根据资源情况启动进程,并及时杀掉不用的进程。

1. ps

ps命令可以查看当前时刻运行的进程。无参数情况下,ps命令会显示运行在当前控制台下的属于当前用户的进程。如下图,我们运行了base shell(之前说过,shell也是一个程序)和ps命令本身。

ps命令曾经有两个版本,linux开发者整合后形成现在的ps命令,ps命令支持3种不同类型的命令行参数:

  • Unix风格:参数前单破折线;
  • BSD风格:参数前无破折线:
  • GNU风格:参数前双破折线;

ps命令每种风格都有很多参数,记住所有参数不太现实且无意义,我们在实际使用往往只需要特定几个参数就可以搞定。个人推荐使用 ps -ef 来查看所有进程的拓展信息

可以看到输出了所有的进程及信息。其中各列的含义是:

UID启动进程的用户
PID进程ID
PPID父进程的进程号
C进程声明周期的CPU利用率
STIME进程启动时间
TTY进程启动是的终端设备
TIME运行进程需要的累积CPU时间
CMD启动的程序名称

注:使用 -l 参数,可以进一步拓展展示信息。


通常配合grep命令,我们可以筛选我们想要找到的进程。比如找到test.sh这个脚本的运行信息。

 

2.结束进程

kill命令可通过进程ID(PID)给进程发信号,结束进程(前提是你为该进程的所属用户或root用户)。

具体参数截取书中表格做参考

kill PID
kill -9 PID
kill -s KILL PID #效果等同kill -KILL PID

默认kill命令像进程发送TERM信号,可以通过 -[信号名或信号值] 或 -s [信号名或信号值] 的方式发送不同信号。如默认TERM信号可能无法杀死一些"顽固"进程,这时候,kill -9 kill -s KILL令进程无条件终止。

killall ,该命令可以根据进程名结束进程,且支持通配符。

killall http*

<磁盘监测>

由上节知,Linux文件系统将所有的磁盘都并入一个虚拟目录下。我们在使用新的存储媒体之前,需要把它放到虚拟目录下。这项工作称为挂载(mounting)。

1. mount 挂载

mount命令会输出当前系统上挂载的设备。 

mount命令提供如下四部分信息:

  • 媒体的设备文件
  • 媒体挂载到虚拟目录的挂载点(on 后为挂载路径)
  • 文件系统类型(type 后为文件系统类型)
  • 已挂载媒体的访问状态

手动挂载命令

mount -t type device directory

type参数指定了磁盘被格式化的文件系统类型,Linux可识别很多文件系统类型。

媒体设备挂载到了虚拟目录后,root用户就有了对该设备的所有访问权限,而其他用户的访问则会被限制。可以通过设定目录权限指定用户对设备的访问权限。

2. umount 卸载

从Linux系统上移除一个可移动设备时,不能直接从系统上移除,而应该先卸载。umount可以直接接挂载点(挂载路径)或挂载的设备名(如/dev/vdb)来卸载。

umount directory
umount device

注:如果在卸载设备时,系统提示设备繁忙,无法卸载设备,通常是有进程还在访问该设备或使用该设备上的文件。 这时可用lsof命令获得使用它的进程信息,然后在应用中停止使用该设备或停止该进程。lsof命令的用法很简 单:lsof /path/to/device/node,或者lsof /path/to/mount/point。

3. df 查看磁盘空间

df命令可以查看当前时刻所有已挂载磁盘的使用情况。

使用 -h 参数,可以更易读的显示。

 

4. du 显示文件大小

du dir
du dir/*
du file

du命令可以显示指定目录/文件的大小。在显示中输出的最左边的数值是每个文件或目录占用的磁盘块数。使用 -h 可进行转换。通常还会用到 -s 参数显示总和。
 -s:显示总计。
 -h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字

 du命令默认显示目录/子目录,最左侧显示占用的磁盘块数。如果要显示文件,则需要指定文件。推荐使用下面命令,统计当前目录各文件大小。

du -sh .*

  • 23
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值