EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; w5 T5 E+ N- u6 J' O5 p* M% M' X0 q8 e( H: }1 g
# s8 G/ |. v- P6 g% Z& @
1、删除0字节文件
h- W. \$ n. k, Q! H9 p' \
- . C/ p9 R! `/ C% P; V! y
( `) h. j( }. c, G find -type f -size 0 -exec rm -RF {} \;2、查看进程按内存从大到小排列* |: \& f2 l y8 m O% v
3 U) R2 D9 b0 Y, ]" j$ R
4 f% {, U$ J0 j% @ P PS -e -o "%C : %p : %z : %a"|sort -k5 -nr3、按 CPU 利用率从大到小排列 ' N2 n* E$ z% V& \: g$ K4 P
' a+ Y0 A6 [4 x- b D
% b% E0 f5 v! L, ?9 a* {! M ps -e -o "%C : %p : %z : %a"|sort -nr4、打印 cache 里的URL 6 S7 L: [0 m1 F, Y
- 4 q( o& W1 |9 V- F+ d& [" z, _/ l Y4 K& r2 K* V( V N; Q
2 g" ]' ~! M' v# G+ n grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'5、查看 http 的并发请求数及其 TCP 连接状态: 7 p' a- r) W3 P* }- }4 H
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'6、 sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config sed 在这个文里 Root 的一行,匹配 Root 一行,将 no 替换成 yes。7、如何杀掉 MySQL 进程
& |' X- E- f' \- 5 Z) T6 R4 w5 m6 _4 j# L: F# E- P: I8 Q+ [. \0 _# ~) }+ P+ c& d/ _8 R! D+ V
0 A9 l# T* T! j- X3 J; X
ps aux |grep mysql |grep -v grep |awk '{print $2}' |xargs kill -9 (从中了解到awk的用途)6 R$ ~) v# [' a# E! |/ `" E! X% e/ r }. {: v1 j3 p" H) h3 K
killall -TERM mysqld( F" y6 y& Y% [1 Z) `! E) e4 ^) I- D, O& i
kill -9 `cat /usr/local/apache2/logs/httpd.pid` 试试查杀进程PID8、显示运行 3 级别开启的服务: 7 g* L h8 x% f) s! ^: Z- E
0 c. H' r5 [6 N* T/ O+ ]& V5 X& e/ B2 b1 S4 n6 e7 W$ ?
ls /etc/rc3.d/S* |cut -c 15- (从中了解到cut的用途,截取数据)9、如何在编写 SHELL 显示多个信息,用 EOF # E J" g; D2 p4 D
2 Z% L! u3 f! D. H, g' c9 ^, x8 U+ xcat << EOF+--------------------------------------------------------------+| === Welcome to Tunoff services === |+--------------------------------------------------------------+EOF10、for 的巧用(如给 MySQL 建软链接) 7 L$ U& R2 m% n2 O6 T# i H% m; Z# z& [/ O1 L% u
- 7 g5 y8 ]: j, u
. J# c3 S. N0 Z" P# k, j* a2 T/ D5 t/ C r d1 y# M$ h
cd /usr/local/mysql/binfor i in *do ln /usr/local/mysql/bin/$i /usr/bin/$idone11、取 IP 地址 ' a5 a9 r& z$ j* u6 M z& Q
0 l- n/ W$ ?( r
5 o+ W% [* V$ m7 i7 n% R! K/ q- l2 W- k+ x
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'| cut -c 6- 或者ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'12、内存的大小: , |! G/ j, N. q' M: g
- , \# ^. `& n) ^0 w, b' V
# ^) J! `5 L! y0 x( Y( ^
free -m |grep "Mem" | awk '{print $2}'13 7 U9 M. B5 ]1 w' R. M
- r% n$ ^9 |( L' s" n9 F- $ g, ?$ x& A5 r' d) J: m- r7 h% _% C' ]- Q5 u
+ ~) Q: ^7 X4 {" z
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort14、查看 Apache 的并发请求数及其 TCP 连接状态: 0 K- g. \1 p; E' _5 G8 \) d1 g. ^/ z/ I
- ) G c. ~5 X9 N3 L2 K0 @
5 q, U K/ m9 `) U3 M$ s' L. Q3 H
' T X* j; Q! _$ ?+ S4 g netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'15、因为同事要统计一下服务器下面所有的 jpg 的文件的大小,写了个 SHELL 给他来统计。原来用 xargs 实现,但他一次处理一部分。搞的有多个总和……,下面的命令就能解决。 ' m9 @/ N4 d4 p {' p" o, C
- 5 x, e2 P/ P8 a }6 |
2 q/ P( Y" H; X5 T4 P
9 N" ?; F/ b$ k0 F# x* O: ? find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'CPU 的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。 ! m( q' R! ^7 c3 m( Q! T
16、CPU负载 0 T: ?% ~$ _: F: J
: P7 w! x& e9 U% D ~( I- ; d6 {: J( h k5 Z, N
( O" U& s6 i% S1 N* Z
0 @9 e3 L! h# u y' Z: G cat /proc/loadavg检查前三个输出值是否超过了系统逻辑 CPU 的4倍。
+ f1 T' q9 m3 b# |! R @2 @$ z17、 CPU负载
9 y; W+ U' b# Q; g. ?; {- 8 } m* O" }3 Y3 D5 V
3 n# k3 X1 x9 ?& Y: X% Q6 H8 Y& m mpstat 1 1检查 %idle 是否过低(比如小于5%)。 b" E6 F7 f! T9 J: [3 ^7 Y, Y9 r
18、内存空间 ) l% @" ^) x3 Q0 ~
- # S$ ?0 G& T6 L3 p7 w( t' P: C E4 Z& ]: {" P6 w/ U. H
/ N1 j$ t2 \' `' `2 F
free检查 free 值是否过低,也可以用 # cat /proc/meminfo 5 D. W ^$ S6 F0 i2 S7 A
19、SWAP 空间 ! [8 P; I0 v' E* ] x7 ]: z. h9 N; A, }& l
- % ~' a. t* O8 w# i: \, [
* D) _9 V8 F% r* ]$ P+ s" {7 M5 x. c5 x0 r0 _- F8 k$ H. k7 K+ E) V
free检查 swap used 值是否过高,如果 swap used 值过高,进一步检查 swap 动作是否频繁:: O+ l9 h$ @& |5 j0 }+ u& \
0 g* u( L1 V8 ]5 S 7 Q, D0 L' S& S! P
6 n$ \7 z' ~2 K: c% X) b4 o9 r+ G- 2 ?4 k7 ]( g+ i1 a
4 n, ^1 t8 S0 P; s( o
3 ~" L4 ]9 h: ~ vmstat 1 5观察 si 和 so 值是否较大 ! p ^' z+ j) _, Q0 h+ ]$ L* I0 Q+ J7 D3 \4 B( N) J* K
20、磁盘空间 6 d& I% \, P) r1 a
5 T* V; e4 h* B, J. p- 7 q3 h3 Z* ?& x# u( I0 t! m. o: {+ X8 I
- I/ O C8 s. k r& I6 @. N
df -h检查是否有分区使用率(Use%)过高(比如超过90%)如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:0 {2 ^& X4 a$ \/ x' _1 @0 V
% D2 i8 @! P, }! H# N
& _2 R/ q2 S. M* q5 V# L5 @2 k: K
P S) d/ ]0 d' B du -cks * | sort -rn | head -n 1021、磁盘 I/O 负载 ' c ?. ~% e0 ~8 v9 {% M9 F! A$ Z# f- |9 g, f
- # r+ t, ~+ a& w/ u5 X9 {
* H, {- _. F) k. w5 c) b2 G% X" d iostat -x 1 2检查I/O使用率(%util)是否超过 100%
4 ]/ Z% G& L; {: H22、网络负载 : R% k( H3 S# x7 P$ \, W! i6 U
+ k6 {) n, z, P# y9 Y
$ t0 z% {8 n$ O; h3 {2 [. p sar -n DEV检查网络流量(rxbyt/s, txbyt/s)是否过高 ' ~! x1 |( e' ]4 c- z; P1 C& ~! t4 V' F
23、网络错误 5 o* @0 M4 h( a( i
' T1 q" b& }& @ U+ p6 u: z4 g- ; W6 Y; P! m# E3 V$ }
* N; n0 ^/ F" G# e* `* @
6 ~6 C$ w+ Z; ?# { netstat -i检查是否有网络错误(drop fifo colls carrier),也可以用命令:# cat /proc/net/dev
' a: e4 q; S2 |3 L Y- Y( a24、网络连接数目 ! b2 @; r7 t+ _ u8 r; m# H' D6 T* d4 P! b% d
- 7 Q9 F: [( n0 {8 S
& [( p, D4 C4 z C6 s- w netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n25、进程总数 # g' a4 a% p( j7 p* K2 }
+ `- s! I) i( z: D! f6 h( f- 0 D3 D3 s# _+ R; J/ C _; U& u7 x5 U6 x, n6 N8 Q* N! P9 S
: k( G% o; X, {0 E6 x7 W9 i( G% Q
ps aux | wc -l检查进程个数是否正常 (比如超过250)# X0 S% u1 A! y+ `$ a# L6 }. t" V: G& m+ m0 j: |8 V; O- c
5 N8 A6 S9 ?8 D9 W1 l! L5 k% n
+ K% L6 ^. X& O! ^7 E" m& _+ E26、可运行进程数目
7 }+ X* o" ]7 {- ]: O6 e3 K- 2 V! Z, z/ o0 i& ^& a
8 P0 a6 g7 M6 P4 z/ g( b
) N( m; n2 d. p0 Q vmwtat 1 5列给出的是可运行进程的数目,检查其是否超过系统逻辑 CPU 的 4 倍' \' H3 ^& ^' }8 S
7 N5 [4 \5 r# a, Y3 ^27、进程 - h( ~7 N1 V( n
* z5 Q( J3 x+ W' l0 j; Q: l- - [ `# K r1 O
- P9 W) N& I) Q! \# Q! y8 R
* {; l- }" U/ \( [; Z, u7 O X+ \ top -id 1观察是否有异常进程出现。
# ^3 R" _2 N0 k [ ' g$ r# i' c0 u
$ \9 U+ y% R Y8 I; V) s28、网络状态,检查DNS,网关等是否可以正常连通 ) G0 R. f* H/ D! p1 t# P
9 ~! V: Q& y4 ^( g6 H9 @% u29、用户 ) v. c- U' \+ P& {+ M+ h
0 C. n' [8 ?" v- 7 l8 u' X. O0 {& C( w/ ?
1 g) `- i9 {6 g" H* }% u) W+ y who | wc -l检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime。 e" s( w% n* [1 S* w4 Q$ V. y: v& E" W% i; s4 x
8 f V+ H9 k1 @
30、系统日志 $ e3 [' ^+ ]7 a( o9 ]) p
: R( r% |1 F, ]3 y' z- " R- @2 @4 t' q4 R3 e7 y
0 s1 V; i: R" U
# cat /var/log/rflogview/*errors检查是否有异常错误记录 也可以搜寻一些异常关键字,例如:
/ z+ g( q E2 y/ D + t) ~4 Z; w6 l4 j/ c3 d0 G
& }! F7 E8 M0 W9 N- ' y& g3 n$ V+ P* |& s6 M9 |
; U. H( `: X' g7 [ grep -i error /var/log/messagesgrep -i fail /var/log/messages31、核心日志
- v' C: u$ T& N6 f' y: p- " l& J6 H+ ]0 W, ]( S2 L) b U' I# z, ^- U/ T7 N H
; O' l* U; ]# }) w% O dmesg检查是否有异常错误记录。9 S9 _& `. s; R/ a3 G4 m! p+ B" H3 \+ I/ z
% ^. ?( e: s& l. a8 [0 _% Z) O4 f, B: ^ M3 |' l7 K3 p, [
32、系统时间 * x/ M ^) ^4 [' r8 r9 ^8 j# d% g+ v( H) t7 H3 s
0 d8 _# t% g" D7 q) X3 H$ z1 a7 |: F& r i6 i* _0 F
date检查系统时间是否正确。# |9 p' ?5 k% {7 g7 X7 U& h, i; C n7 N! }1 r* y6 t' @8 H
" l$ R& ?/ [ d; K' b+ ?) F- A7 m! L3 H33、打开文件数目 2 N: m$ p. f8 {" S% _. j: a! S1 ], F8 t0 ^
- 4 k3 ~0 v' o& ?( d& m' Z* O- H! S2 A$ L: a' X' ~
- @( c. t: K% J1 d+ g" e$ H1 n9 ~/ y7 `
lsof | wc -l检查打开文件总数是否过多。
! z. Q4 S' c! ]. C$ J ; F. g- [* x9 g9 r0 v
]: {7 C! K3 y8 f3 F34、日志 4 ^/ n" A( n2 f& }4 ~2 q* G: z+ V; e/ ~6 ]7 {2 Y
- 2 \$ H+ g+ \( F- k
8 T+ }% k1 Y* Y# u& k9 m6 i- L
6 C1 H5 `/ J7 A) Y # logwatch –print配置 /etc/log.d/logwatch.conf,将 Mailto 设置为自己的 email 地址,启动 mail 服务(sendmail或者postfix),这样就可以每天收到日志报告了。缺省 logwatch 只报告昨天的日志,可以用 # logwatch –print –range all 获得所有的日志分析结果。可以用 # logwatch –print –detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。, x% w9 \$ ~, C" m0 W) I4 `2 N5 x# @; `7 M) G, D- e
35、杀掉80端口相关的进程5 R3 j. k8 G0 N& |- O
1 B G9 w' a- b2 Y1 t/ k& i
) X9 V; L: K3 \1 B4 C: t0 }$ f7 q3 W4 u5 _9 y) }8 C
lsof -i :80|grep -v “ID”|awk ‘{print “kill -9”,$2}’|sh36、清除僵死进程 0 \5 s5 J2 o: P) B5 J; n! A
8 d4 f0 _8 q m- {: F. m- 6 }! l$ ?% ]- v I! k S. w/ }
5 G8 K( G) h* l" E: |. X ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -937、tcpdump 抓包,用来防止80端口被人攻击时可以分析数据 ( z* m" o# O x1 U+ D! Y$ s0 `, L
- ! G, x3 o. a# j7 @5 ^9 O3 Q1 R6 @, t7 l# X+ Q" A
9 r& d2 H# g/ a/ D" v' D# |4 }/ b
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts38、然后检查IP的重复数并从小到大排序 注意 “-t\ +0” 中间是两个空格 * S9 a- M( i. z
5 D* t+ f6 S, U2 l/ H p# s- * A B3 Q; C- _! \' |$ l/ J/ Z: i' X6 l8 K: w4 y
. e& K7 b0 q6 [7 ]3 h: E
# less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +039、查看有多少个活动的 php-cgi 进程 5 c( E0 B6 {: ?- [, o& O, u
. Y" M% z$ R1 v9 I' [3 e- % r/ Y; f% A. y2 Z9 Q5 [+ V6 @7 V5 z, M
p4 p( d1 e7 a3 q$ A' I; y) @2 Y netstat -anp | grep php-cgi | grep ^tcp | wc -l40、查看系统自启动的服务 ( s( L! p0 j* ^
1 x, Y3 l/ C; J1 C8 A# F$ R- ' J5 ?; q' s0 T" r0 O: w/ S
" u1 N& q$ N1 j
chkconfig --list | awk '{if ($5=="3n") print $1}'41、kudzu 查看网卡型号 5 }! ^0 K$ w9 e9 w+ l0 o" Z/ D7 D. u: s
- ; g- Q7 K% Q2 |6 R& Z, L' z: j3 l6 ?6 ~4 N
0 V, C. L, l i/ i
kudzu --probe --class=network常用正则表达式) u, c+ Z) z8 Y7 H% E6 |* g
# G8 q5 Z3 o9 S6 S9 |
7 b6 N P- [* A. N. w3 E1.匹配中文字符的正则表达式: [\u4e00-\u9fa5]
% p1 l; Q( Z$ h' M; \评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 0 F" O3 l( W* N. D& S$ e0 o
2.匹配双字节字符(包括汉字在内):[^\x00-\xff] - m/ }8 f1 y( @$ j
$ Q) s) ]) [2 \评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 8 p; G s# ~* N- t3 o; F" ^8 C7 g* U0 S: ~+ S) c2 ]# K
3.匹配空白行的正则表达式:\n\s*\r 9 j* e. U& D/ l& k3 Q4 j% [7 u: j+ o/ T
评注:可以用来删除空白行
4 X% X5 W9 m5 F. ^) F5 W
4.匹配 HTML 标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> , R4 p/ e6 ~) W2 o* _" T7 ?: E
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
& K8 P/ s) z2 N9 c, E( A1 L
5.匹配首尾空白字符的正则表达式:^\s*|\s*$ 5 f. Q" j2 R: L! w
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 , V4 M' g3 {* n& v+ \
6.匹配Email地址的正则表达式: / ?, f- J. J& w: l. o& B; Z/ c
5 p' g1 {3 {: [6 I5 ^% I8 N6 W8 M1 Q* C, y3 x/ U! M+ |* k, p/ b, X% x
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*评注:表单验证时很实用 ! Z! b9 j- r) |8 }. R
7 ?1 W; a5 d5 |8 W: J
7.匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* ( R9 Z$ u; R& L0 L3 ]8 Q w
评注:网上流传的版本功能很有限,上面这个基本可以满足需求 " V% k- q- `+ {, z7 a1 c
8.匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ , F, n7 ?, M0 k$ I. J
评注:表单验证时很实用 3 ?8 t/ K/ l' [0 t' u. h& V. X
9.匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 2 Y# ]# m; A! K9 {- O1 s* x W) A- X* C1 D3 {* W$ Q4 F! k
评注:匹配形式如 0511-4405222 或 021-87888822 % v3 z% e6 ] m$ ?- |
4 ]! I+ B! c* p# a! W
10.匹配腾讯QQ号:[1-9][0-9]{4,} $ |, G. H6 K* L1 s% t4 t3 p
评注:腾讯QQ号从10000开始 ( L0 |" j# c7 k3 ~# s! x, O' n
11.匹配中国邮政编码:[1-9]\d{5}(?!\d) e4 r8 W; u$ F2 B q3 x0 d( J; j! o. U. m# D; n4 @5 }; d8 u
评注:中国邮政编码为6位数字 & \2 H5 q* e6 h! J9 O5 n8 \. e
12.匹配×××:\d{15}|\d{18} ) ^& [5 ~# V. G) `; t# r# I5 H" A0 } L
评注:中国的×××为15位或18位 : z% q) [' L. z1 K% c. p
13.匹配ip地址:\d+\.\d+\.\d+\.\d+ 2 p1 Y" t5 h8 F! H! }
评注:提取 IP 地址时有用
2 ?$ M9 c( \4 G" ?+ \2 D
14.匹配特定数字: ' F8 X9 N4 O6 Y. n& }8 k; T$ h& D# v
7 G2 j9 ~" s( z) `/ ?^[1-9]\d*$ //匹配正整数^-[1-9]\d*$ //匹配负整数^-?[1-9]\d*$ //匹配整数^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)评注:处理大量数据时有用,具体应用时注意修正 8 g! Z# P' U0 B5 \
6 _2 N/ z# o1 K* P. `+ z8 A15.匹配特定字符串: ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串^[a-z]+$ //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串评注:最基本也是最常用的一些表达式 + }/ h2 N. Z9 U2 Q1 U" N
|