欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-06 09:49:32
...

第一部分: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 -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地址

http://su1216.iteye.com/

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