《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记

时间:2022-12-13 20:01:54

第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器

第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本

第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell

第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶


第二十七章: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 -hFilesystem            Size  Used Avail Use% Mounted on/dev/sda1              47G  5.8G   39G  13% /none                  2.9G  244K  2.9G   1% /devnone                  2.9G  5.3M  2.9G   1% /dev/shmnone                  2.9G  456K  2.9G   1% /var/runnone                  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     cachedMem:       6025532    5966392      59140          0     967352    1849580-/+ buffers/cache:    3149460    2876072Swap:      2899696     174624    2725072

4.僵尸进程

$ ps -alF S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD1 S  1000  2279     1  0  80   0 - 21912 poll_s pts/0    00:00:36 fcitx0 S  1000 27284     1  0  80   0 -  7330 poll_s pts/3    00:00:02 adb0 R  1000 29962  2252  0  80   0 -  2737 -      pts/0    00:00:00 ps

S列状态为Z的为僵尸进程,上面没有僵尸进程

$ ps -al | tr -s ' ' ' ' | cut -d ' ' -f 2,4S PIDS 2279S 27284R 29959S 29960S 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 3procs -----------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地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/