找回密码
 注册
关于网站域名变更的通知
查看: 64|回复: 0
打印 上一主题 下一主题

Linux运维必备的命令总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-2-24 17:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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 -nr
3、按 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 -nr
4、打印 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`   试试查杀进程PID
8、显示运行 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 ===                |+--------------------------------------------------------------+EOF
10、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/$idone
11、取 IP 地址
' a5 a9 r& z$ j* u6 M  z& Q
0 l- n/ W$ ?( r

  • 5 o+ W% [* V$ m7 i
    7 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}' | sort
14、查看 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 @$ z
17、 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. c
    5 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 10
21、磁盘 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; {: H
22、网络负载
: 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( a
24、网络连接数目
! 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 -n
25、进程总数   
# 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& _+ E
26、可运行进程数目   

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) s
28、网络状态,检查DNS,网关等是否可以正常连通
) G0 R. f* H/ D! p1 t# P
9 ~! V: Q& y4 ^( g6 H9 @% u
29、用户
) 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/messages
31、核心日志   

- 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$ z
    1 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 H
33、打开文件数目   
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 F
34、日志
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 }$ f
    7 q3 W4 u5 _9 y) }8 C
lsof -i :80|grep -v “ID”|awk ‘{print “kill -9”,$2}’|sh
36、清除僵死进程
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 -9
37、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/pkts
38、然后检查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\ +0
39、查看有多少个活动的 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 -l
40、查看系统自启动的服务
( 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=="3
n") 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 E
1.匹配中文字符的正则表达式: [\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 M
    1 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 A
15.匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串^[a-z]+$ //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
+ }/ h2 N. Z9 U2 Q1 U" N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-19 09:45 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表