微分享 - 超实用开发日常排查问题Linux运维命令

CPU

CPU基本信息

cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 63
model name	: DO-Regular
stepping	: 2
microcode	: 0x1
cpu MHz		: 2294.608
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
......
bogomips	: 4589.21
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

CPU使用情况

CPU显示当前服务和进程 CPU使用情况。
top

top - 02:57:12 up 111 days,  4:17,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us, 11.8 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   498568 total,    16884 free,   200448 used,   281236 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   251668 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0  193708   5496   2804 S  0.0  1.1   3:15.15 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.96 kthreadd
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H

每2秒刷新一次,共刷新三次。
vmstat 2 3

ocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0  14816      0 282000    0    0     2     2    2    1  0  0 100  0  0
 0  0      0  12736      0 282000    0    0     0     0   85  130  1  1 98  0  0
 0  0      0  14704      0 282004    0    0     0    10   68  131  0  0 100  0  0

详细参数说明

%Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st

 - 38.7 us, (用户空间CPU占用率)
 - 3.5 sy (内核空间CPU占用率)
 - 0.0 ni (用户进程空间改变过优先级的进程CPU的占用率)
 - 42.0 id(空闲CPU占有率)
 - 15.5 wa (等待输入输出的CPU时间百分比)
 - 0.0%hi (硬件中断请求)
 - 0.3%si (软件中断请求)
 - 0.0%st (分配给运行在其它虚拟机上的任务的实际 CPU时间)

ps 命令可用于确定哪个进程占用了 CPU

ps aux | sort -nrk 3,3 | head -n 5

root      7436  0.1  0.0      0     0 ?        S    02:47   0:00 [kworker/0:1]
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
rpc        522  0.0  0.1  69256   540 ?        Ss   5月01   0:18 /sbin/rpcbind -w
root         9  0.0  0.0      0     0 ?        R    5月01   5:47 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    5月01   0:00 [rcu_bh]

也可以通过进程名来快速查找Linux中cpu的利用率。通过“ps -C 进程名 -o %cpu”

ps -C 进程名称 -o %cpu

内存

top也可以查看当前的内存使用情况

free

free

              total        used        free      shared  buff/cache   available
Mem:         985100      203192      251916        2012      529992      641244
Swap:             0           0           0
  • total:总计物理内存的大小
  • used:已使用多大
  • free:可用有多少
  • Shared:多个进程共享的内存总额
  • Buffers/cached:磁盘缓存的大小。

网络

查看端口

显示连接数
netstat -anp |grep :22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      995/sshd
tcp        0      0 192.168.0.38:22         117.158.210.253:40734   ESTABLISHED 3584/sshd: root [pr
tcp        0     36 192.168.0.38:22         117.158.210.253:47253   ESTABLISHED 3755/sshd: root [pr

netstat -anp |grep :22 |wc -l
3

通过端口找进程ID
netstat -anp | grep 58049

tcp        0     52 192.168.1.100:22        192.168.1.93:58049      ESTABLISHED 1350/sshd: root@pts 

查看连接某个端口最多的IP地址

netstat -ntu | grep :58049 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"t",i}' | sort -nr
1   192.168.1.93

-a或–all #显示所有的网络连接信息
-n或–numeric #直接使用ip地址
-p或–programs:显示正在使用Socket的程序识别码和程序名称
-t或–tcp:显示TCP传输协议的连线状况
-u或–udp:显示UDP传输协议的连线状况

curl 常用命令

保存网页

curl -o linux.html http://www.linux.com

curl 就是发出 GET和POST 请求

curl http://www.yahoo.com/login.cgi?user=nickname&password=12345
curl -d "user=nickname&password=12345" http://www.yahoo.com/login.cgi

-X :指定HTTP请求方法,如GET、POST、PUT等
-o :将响应内容保存到指定文件
-L :跟随重定向

文件

df 、du 区别

  • df:列出文件系统的整体磁盘使用量;
  • du:评估文件系统的磁盘使用量(常用于评估目录所占容量)

磁盘使用情况

df -h

文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        464M     0  464M    0% /dev
tmpfs           482M     0  482M    0% /dev/shm
tmpfs           482M  472K  481M    1% /run
tmpfs           482M     0  482M    0% /sys/fs/cgroup
/dev/vda1        30G  7.0G   21G   26% /
tmpfs           482M  4.0K  481M    1% /tmp
tmpfs            97M     0   97M    0% /run/user/0

文件大小

使用ll或是ls,文件从大到小排序。
ll -Slh

总用量 74M
-rwxr-xr-x 1 root root  64M 88 23:02 go1.21.0.linux-amd64.tar.gz
-rw-r--r-- 1 root root  11M 821 21:05 kubectl
-rwxr-xr-x 1 root root 4.1K 821 17:31 jdk-8u202-linux-x64.tar.gz
drwxr-xr-x 4 root root 4.0K 821 18:02 go
-rwxr-xr-x 1 root root 4.0K 821 17:33 jdk-8u202-linux-x64.rpm

使用du,查询当前目录下每个文件或者目录的大小,排序并显示前3个
du -h --max-depth=1 | sort -nr | head -n 3

179M	.
76M	./.cache
29M	./go

跟ll一样的效果
du -sh *|sort -nr

64M	go1.21.0.linux-amd64.tar.gz
29M	go
11M	kubectl
8.0K	jdk-8u202-linux-x64.tar.gz
4.0K	jdk-8u202-linux-x64.rpm

## 多个c显示总量
du -sch *|sort -nr
103M	总用量
64M	go1.21.0.linux-amd64.tar.gz
29M	go
11M	kubectl
8.0K	jdk-8u202-linux-x64.tar.gz
4.0K	jdk-8u202-linux-x64.rpm

文件下载

单个文件下载

wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
## 必须使用 -O(大写字母 O)选项
curl -O http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
curl -lO http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

下载文件并指定保存名称

## 在下载时使用 -O (大写字母 O) 选项来提供输出文件名
wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
## 必须使用 -o(小写 O)选项:
curl -o wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

下载文件夹下的文件

wget -r ftp://server-address.com/directory

压缩&解压缩

使用tar

# 压缩文件 file1 和目录 dir2 到 test.tar.gz
tar -zcvf test.tar.gz file1 dir2
# 解压 test.tar.gz(将 c 换成 x 即可)
tar -zxvf test.tar.gz
# 列出压缩文件的内容
tar -ztvf test.tar.gz

说明

-z : 使用 gzip 来压缩和解压文件
-v : --verbose 详细的列出处理的文件
-f : --file=ARCHIVE 使用档案文件或设备,这个选项通常是必选的
-c : --create 创建一个新的归档(压缩包)
-x : 从压缩包中解出文件

使用zip

# 压缩文件
zip -r test.zip file
# 解压文件
unzip test.zip

查找文件

Linux find命令的基本语法如下:find [path] [expression]
其中:
path:要查找的目录路径。
expression:查找表达式,指定要查找的文件类型、名称、大小等条件。

在服务器的根目录查找包含“wljslmz”的文件或者目录

find / -name "*wljslmz*"

查找文件类型

find /path/to/search -type f -name "*.txt"
- /path/to/search是您要查找的目录路径。
- -type f表示要查找的是文件类型。
- -name "*.txt"表示要查找以.txt结尾的文件。

查找文件大小

## 说明
## 范围:+表示大于        -表示小于        等于不需要符号
## 大小:M(必须大写)        k(必须小写)        c(表示字符)
find /root -type f -size +10M
或则
find /root -size +10M

/root/.cache/go-build/e9/e9c8b0d0213fb337584f9259e5d50fe315cb216187314aff9380e73386a6ab1d-d
/root/go1.21.0.linux-amd64.tar.gz
/root/kubectl

-mtime选项指定查找最近7天内修改过的文件

find /usr -type f -mtime -7

查找起始点以下n层的目录,不超过n层
find 路径 -maxdepth n(层数)

find / -maxdepth 2 -name "*t*"
/lost+found
/opt
/opt/containerd

查找文件内容

在文件 /etc/password 文件中搜索 nobody

grep nobody /etc/password
或者
cat /etc/password | grep nobody
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
$

在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

grep test *file 

命令参数之【-i:字符忽略大小写】

grep -i 'OLDBOY' /oldboy/oldboy.txt
01 oldboy

进程

常用的就是ps -aux | grep xxx

CPU 使用来升序排序

ps -aux --sort -pcpu | less

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1688  1.3  1.0 123904 10908 ?        S<sl 14:55   0:01 /usr/local/aegis/aegis_client/aegis_11_63/AliYunDunMonitor
root      1580  0.6  0.4  43524  4768 ?        S<sl 14:54   0:01 /usr/local/aegis/aegis_update/AliYunDunUpdate
root      1678  0.4  0.7 101080  8008 ?        S<sl 14:55   0:00 /usr/local/aegis/aegis_client/aegis_11_63/AliYunDun

内存 使用升序排序

ps -aux --sort -pmem | less

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1619  0.1  1.8 725560 18676 ?        Sl   14:54   0:01 CmsGoAgent-Worker start
root       850  0.0  1.7 574288 17468 ?        Ssl  14:53   0:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      1124  0.0  1.4 814652 14356 ?        Ssl  14:53   0:00 /usr/local/share/aliyun-assist/2.2.3.421/aliyun-service
polkitd    530  0.0  1.0 612240 11088 ?        Ssl  14:53   0:00 /usr/lib/polkit-1/polkitd --no-debug

其他常用

操作系统进本信息

查看操作系统信息,包括操作系统是多少位的

uname -a
Linux centos-s-1vcpu-512mb-10gb-sfo3-01 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

赋予文件执行权限,很常用的

chmod +x 文件名

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值