查看所有硬盘的SMART详细信息
依赖包安装
1
| sudo apt install smartmontools
|
命令介绍
首先使用lsblk获取所有的存储设备,然后使用grep过滤出sd、hd、nvme、vd开头的设备,最后使用xargs和smartctl获取每个设备的SMART信息。
1
| lsblk -d -o NAME | grep -E '^(sd|hd|nvme|vd)' | xargs -I {} sudo smartctl -a "/dev/{}"
|
查看所有硬盘的SMART详细信息(极简输出)
依赖包安装
1
| sudo apt install smartmontools
|
命令介绍
流程同上
1
| lsblk -d -o NAME | grep -E '^(sd|hd|nvme|vd)' | xargs -I {} sudo smartctl -H "/dev/{}"
|
定位进程所属容器/Pod
依赖包安装
定位pod需要crictl
命令介绍
Docker
首先使用cat和grep获取进程所属的cgroup,然后使用docker ps和grep获取容器ID。
1
| docker ps | grep $(sudo cat /proc/<pid>/cgroup | grep -oP 'docker-\K[a-f0-9]+' | head -c 12)
|
ctr(containerd)
首先使用cat和grep获取进程所属的cgroup,然后选取包含pids的一行以去掉重复数据,直接从最后的信息中提取命名空间和容器名称。
1
| sudo cat /proc/<pid>/cgroup | grep pids | awk -F'/' '{print $(NF-1), $NF}'
|
Kubernetes获取容器id
首先使用cat和grep获取进程所属的cgroup, 然后选取包含pids的一行以去掉重复数据,从行中解析最后一级的前12位。
1
| sudo cat /proc/<pid>/cgroup | grep pids | awk -F'/' '{print substr($NF,1,12)}'
|
Kubernetes获取Pod名称
使用crictl根据容器ID获取Pod名称。其中容器ID为上一步获取到的12位ID。
1
| crictl inspect -o go-template --template='{{index .status.labels "io.kubernetes.pod.name"}}' $(sudo cat /proc/<pid>/cgroup | grep pids | awk -F'/' '{print substr($NF,1,12)}')
|