4.2 FreeBSD下的系统监控工具

本章介绍FreeBSD下的系统监控工具

4.2.1 使用SNP Watch监控用户

参考How to Monitor Users with SNP Watch.

watch命令使用snp设备来监视某个tty的数据的输入输出, 因此首先要保证内核调入snp模块, 所以, 在内核配置中加入

pseudo-device       snp 4
   

watch常用使用方式如下

  1. 监视用户的tty, 不需要使用任何参数, 只需要指定tty

    # who
    jerry            ttyv4     5 18 13:40  
    # watch ttyv4
       
    
  2. 监视并控制用户的tty, 需要加上参数`-W', 并指定tty

    # who
    jerry            ttyv4     5 18 13:40  
    # watch -W ttyv4
       
    

watch的快捷键如下

CTRL+G = 退出
CTRL+W = 清屏
CTRL+X = 选择需要监视tty
   

4.2.2 使用smartmontools监视硬盘状态

SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准, SFF-8035i工业标准经过ATA-3, ATA-4, 到了ATA-5, 加入了一个错误信息日志(error log)和一系列硬盘自测SMART命令. 这个标准就是在硬盘上保存一些跟执行情况, 可靠程度, 读找错误率等属性的数据, 所有属性都有一个1字节(大小范围 1-253)的标准化值, 还包含另一个1字节的关键阶段值, 如果属性中某个数据接近小于或达到关键阶段值,那么硬盘就很可能会在不久出现严重的读写问题, 至少也是超过它的设计使用极限了, 这时应该做系统完全备份了.

SMART适用于IDE和SCSI硬盘, 如果硬盘支持SMART标准, 就可以使用smartmontools来 监视硬盘的状态, smartmontools的安装如下, 这里我使用的是IDE的硬盘, 设备是ad0

# cd /usr/ports/sysutils/smartmontools
# make all install clean
# echo 'smartd_enable="YES"' >> /etc/rc.conf
# echo '/dev/ad0 -H -m mymailbox@mymachine' > /usr/local/etc/smartd.conf
# /usr/local/etc/rc.d/smartd.sh start
   

上面我设置smartd在发现错误后发送邮件通知我, 此外还可以根据需要定期测试硬盘, 查看其是否有错误, 具体设置可以参见/usr/local/etc/smartd.conf.sample

还可以通过smartctl来查看和测试硬盘, 常用命令如下:

  1. 查看硬盘是否支持SMART标准

    # smartctl -i /dev/ad0
       
    
  2. 查看硬盘的健康状况

    # smartctl -H /dev/ad0
       
    
  3. 查看硬盘错误日志

    # smartctl -l error /dev/ad0
       
    
  4. 进行硬盘自检

    # smartctl -l selftest /dev/ad0
       
    
  5. 终止硬盘自检

    # smartctl -X /dev/ad0