zoukankan      html  css  js  c++  java
  • linux命令(6/9):watch命令

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化    !

    FreeBSD和Linux下watch命令的不同 
    在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。 
    -d, --differences[=cumulative]       高亮显示变动
    -n, --interval=                      周期(秒)
    -t 或-no-title                       会关闭watch命令在顶部的时间间隔
    如:watch -n 1 -d netstat -ant
    而在FreeBSD下的watch命令是查看其它用户的正在运行的操作,watch允许你偷看其它terminal正在做什么,该命令只能让超级用户使用。

    实例:
    #watch uptime
    #watch -t -d uptime
    #watch -d -n 1 netstat -ntlp
    #watch -d ’ls -l | fgrep goface’   //监测goface的文件
    #watch -t -differences=cumulative uptime
    #watch -n 60 from  //监控mail
    #watch -n 1 ”df -i;df”  //监测磁盘inode和block数目变化情况
    #watch -n 60 -d du -ah //查看usb3.0拷贝到该目录下面的速度


    有趣的linux命令:看看哪些文件正在变!
    watch -d -n 1 'df; ls -Alt -F /path'


    在使用这条命令时你需要替换其中的 /path 部分,watch 是实时监控工具,
    -d 参数会高亮显示变化的区域,-n 1 参数表示刷新间隔为 1 秒。
    df; ls -FlAt /path 运行了两条命令,df 是输出磁盘使用情况,ls -FlAt 则列出 /path 下面的所有文件。
    ls -FlAt 的参数详解:
    -F 在文件后面加一个文件符号表示文件类型,共有 */=>@| 这几种类型,* 表示可执行文件,/ 表示目录,= 表示接口( sockets) ,> 表示门, @ 表示符号链接, | 表示管道。 
    -l 以列表方式显示 
    -A 显示 . 和 .. 
    -t 根据时间排序文件

    1.命令格式:

    watch[参数][命令]                      命令功能:     可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

    3.命令参数:

    -n或--interval  watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。

    -d或--differences  用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。

    -t 或-no-title  会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。

      -h, --help 查看帮助文档

    4.使用实例:

    实例1:

    命令:每隔一秒高亮显示网络链接数的变化情况

    watch -n 1 -d netstat -ant
    说明:其它操作:切换终端: Ctrl+x                      退出watch:Ctrl+g

    实例2:每隔一秒高亮显示http链接数的变化情况

    命令:watch -n 1 -d 'pstree|grep http'

    说明:每隔一秒高亮显示http链接数的变化情况。 后面接的命令若带有管道符,需要加''将命令区域归整。

    实例3:实时查看模拟攻击客户机建立起来的连接数

    命令:watch 'netstat -an | grep:21 |  grep<模拟攻击客户机的IP>| wc -l'                      说明:

    实例4:监测当前目录中 scf' 的文件的变化

    命令:watch -d 'ls -l|grep scf' 

    实例5:10秒一次输出系统的平均负载

    命令:watch -n 10 'cat /proc/loadavg'

    16 个Linux 服务器监控命令和watch

    要让服务器保持最佳性能,你应该将 Linux 服务器的运行级别 runlevel 设置为 3 ,就是控制台模式,当你需要图形化桌面的时候使用 startx 命令来启动它。

    如果你的服务器启动后就直接进入图形界面,你需要修改配置 /etc/inittab 找到 initdefault 一样,将 id:5:initdefault 修改为 id:3:initdefault。

    如果你没找到 /etc/inittab 文件,那就创建一个新的,文件内容增加 id:3 这么一行。这样下次服务器启动的时候就不会进入图形界面。如果你不想等到服务器重启的时候才生效,你可以执行 init 3 这个命令。

    一旦你的服务器是在控制台模式下运行,你就可以开始我们接下来的内容。

    iostat

    iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

    meminfo 和 free

    Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:

    1 cat /proc/meminfo

    另外你可以使用 free 命令来显示动态的内存使用信息,free 只是给你大概的内存信息,而 meminfo 提供的信息更加详细。例如在 oschina 上的 free 命令执行结果:

    mpstat

    mpstat mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

    再来看看 oschina 上的 mpstat 命令执行结果:

    关于 mpstat 执行结果中的参数意思请参考此贴

    netstat

    Netstat 和 ps 命令类似,是 Linux 管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:

    1 -a Show all socket information
    2 -r Show routing information
    3 -i Show network interface statistics
    4 -s Show network protocol statistics

    nmon

    Nmon, 是 Nigel's Monitor 的缩写,是一个使用很普遍的开源工具,用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon 也提供了一个图形化的工具:

    sjvn_LinuxServerMonitoring_nmon.png

    要运行 nmon,你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入 c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f 命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。

    在每日的监控工作中,我发现 nmon 是我最常用的工具。

    pmap

    pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数。

    ps 和 pstree

    ps 和 pstree 命令是 Linux 系统管理员最好的朋友,都可以用来列表正在运行的所有进程。ps 告诉你每个进程占用的内存和 CPU 处理时间,而 pstree 显示的信息没那么详细,但它以树形结构显示进程之间的依赖关系,包括子进程信息。一旦发现某个进程有问题,你可以使用 kill 来杀掉它。

    sar

    sar 程序是系统监控工具里的瑞士军刀。该程序包含三个工具:sar 用来显示数据,sa1 和 sa2 用来收集数据并保存。sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。sar 和 nmon 最大的不同就是 sar 跟适合用作长期的监控,而 nmon 可以让你快速的了解系统当前状态。

    strace

    strace 经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。

    Strace 也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用。

    tcpdump

    Tcpdump 是一个简单、可靠的网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络。当然,如果你要获取跟详细的信息,你应该使用 Wireshark (下面我们会介绍).

    top

    top 命令显示当前的活动进程,默认它是按消耗 CPU 的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方式,例如 m 是按内存占用方式进行排序的快捷键。

    uptime

    uptime 命令告诉你这台服务器从开机启动到现在已经运行了多长时间了。同时也包含了从启动到现在服务器的平均负载情况,看看 oschina 的数据:

    我已经忘了上次是为什么重启机器了,好像是换了个机柜。

    vmstat

    你可以使用 vmstat 来监控虚拟内存,一般 Linux 上的开发者喜欢使用虚拟内存来获得最佳的存储性能。该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

    在 oschina 上执行 vmstat 的结果:

    Wireshark

    Wireshark, 前身是 Ethereal ,是一个网络协议检测程序,让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等.

    watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。

    举例来说,Linux 系统有一个基础命令 w,可以显示当前的 uptime、负载还有登录的用户,非常方便,但是如果我想监测这些数据,看看有没有新用户登入,看看某段的时间的负载是不是太大之类的,就得手动一遍遍的运行这个命令,然后查看结果,虽然命令只有一个字母,但是还是很郁闷……

    watch 就是干这个用的,直接在 watch 后面接你想运行的命令,watch 就会帮你重复运行,并把每次的结果都更新在屏幕上~

    要想监测 w 命令的运行结果,只要 watch w 就可以了:

    默认 watch 会以 2s 的间隔重复运行命令,你也可以用 -n 参数指定时间间隔~

    还有一个实用的参数是 -d,这样 watch 会帮你高亮显示变化的区域,这样更加一目了然了~ 

  • 相关阅读:
    Python os模块简单应用
    requests获取源代码时中文乱码问题
    python 正则表达式findall和search用法
    linux source路径配置 省掉每次source的烦恼
    mstar屏参调试说明
    Mstar supernova方案调试笔记-001
    NonOS方案屛参的TOTAL和PLL SET值的设置
    supernova系统 Mrsv 简介笔记
    【工作随笔】Javascript 日期获取封装组件
    如何理解springboot中,mapper接口的实现类由持久层框架进行创建,而不由spring创建?
  • 原文地址:https://www.cnblogs.com/klb561/p/9159025.html
Copyright © 2011-2022 走看看