第二十七章: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/