第二十七章:shell脚本编程进阶
监测系统统计数据
系统快照报告
1.运行时间
uptime命令会提供以下基本信息:
当前时间
系统运行的天数,小时数,分钟数
当前登录到系统的用户数
1分钟,5分钟,15分钟的平均负载
$ uptime
16:20:51 up 2 days, 3:11, 9 users, load average: 0.01, 0.02, 0.05
2.磁盘使用情况
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 47G 5.8G 39G 13% /
none 2.9G 244K 2.9G 1% /dev
none 2.9G 5.3M 2.9G 1% /dev/shm
none 2.9G 456K 2.9G 1% /var/run
none 2.9G 0 2.9G 0% /var/lock
/dev/sda7 197G 141G 47G 76% /home
/dev/sdb 459G 338G 98G 78% /home/su1216/android/source/cn3
3.内存使用情况
free命令会显示物理内存总量,以及其中空闲,使用。还会显示交换内存的上述数据,包括内核缓冲区。
$ free
total used free shared buffers cached
Mem: 6025532 5966392 59140 0 967352 1849580
-/+ buffers/cache: 3149460 2876072
Swap: 2899696 174624 2725072
4.僵尸进程
$ ps -al
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 S 1000 2279 1 0 80 0 - 21912 poll_s pts/0 00:00:36 fcitx
0 S 1000 27284 1 0 80 0 - 7330 poll_s pts/3 00:00:02 adb
0 R 1000 29962 2252 0 80 0 - 2737 - pts/0 00:00:00 ps
S列状态为Z的为僵尸进程,上面没有僵尸进程
$ ps -al | tr -s ' ' ' ' | cut -d ' ' -f 2,4
S PID
S 2279
S 27284
R 29959
S 29960
S 29961
然后再grep -Z就可以找到僵尸进程以及对应的PID
系统统计数据报告
vmstat可以查看虚拟机状态
vmstat的输出符号
符号 | 描述 |
r | 等待CPU时间的进程数 |
b | 处于不可中断休眠中的进程数 |
swpd | 使用的虚拟内存总量(单位:MB) |
free | 空闲的物理内存总量(单位:MB) |
buff | 用作缓冲区的内存总量(单位:MB) |
cache | 用作高速缓存的内存总量(单位:MB) |
si | 从磁盘交换进来的内存总量(单位:MB) |
so | 交换到磁盘的内存总量(单位:MB) |
bi | 从块设备收到的块数 |
bo | 发送给块设备的块数 |
in | 每秒的CPU中断次数 |
cs | 每秒的CPU上下文切换次数 |
us | 用于执行非内核代码的CPU时间所占用的百分比 |
sy | 用于执行内核代码的CPU时间所占用的百分比 |
id | 处于空闲状态的CPU时间所占的百分比 |
wa | 处于等待I/O的CPU时间所占的百分比 |
第一次运行vmstat时,它会显示上次重启以来的平均负载值。
要得到当前统计数据,必须添加参数:
$ vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 191364 158988 246504 2287404 0 0 64 82 48 17 3 1 96 1
0 0 191364 158888 246504 2287416 0 0 0 0 374 862 2 0 98 0
0 0 191364 158888 246504 2287416 0 0 0 0 360 970 1 0 99 0
问题跟踪数据库
默认情况下,mysql会忽略大小写
在mysql中可以使用正则。比如:
select * from tableA where name REGEXP 'regular expression'
(笔记只保留了必要的脚本,没有什么新的知识,全部脚本请参阅原书第27章576页)
转贴请保留以下链接
本人blog地址