lsscsi -g |-E "ATA|TOSHIBA" |awk '{print $(NF-1)}' |grep -Ev $os_disk_symbol
时间: 2023-10-12 20:04:41 浏览: 49
0x0c, 0x96, 0x77, 0x7e, 0x65, 0xb9, 0xf1, 0x09, 0xc5, 0x6e, 0xc6,好的,你的第一个问题是关于Linux命令的。这是一个用于获取磁盘设备信息的命 0x84,
0x18, 0xf0, 0x7d, 0xec, 0x令,它使用了管道符号“|”和一些选项参数。其中“-g”选项表示以组3a, 0xdc, 0x4d, 0x20, 0x79, 0xee, 0的形式显示磁盘设备信息,“-E”选项表示使用正则表达式过滤出包含“ATAx5f, 0x3e, 0xd7, 0xcb, 0x39, 0x48
”或“TOSHIBA”字符串的设备信息,“awk '{print $(NF-1)}'"则表示使用awk命令 };
}
}
```
说明:
- 输入参数 key 为 byte[] 类型的密钥;
- 输入参数 input 为打印出每行的倒数第二列信息,最后使用grep命令过滤掉包含$os_disk_symbol的行。
相关问题
os_disk_symbol=$(echo $(lsblk |grep -B1 -E "part|boot" |grep -E "^sd[a-z]+|^nvme" |awk '{print $1}') |sed 's/ /|/') non_os_disk_set=$(lsscsi -g |-E "ATA|TOSHIBA" |awk '{print $(NF-1)}' |grep -Ev $os_disk_symbol) if [[ -n $non_os_disk_set ]];then for i in $(echo "$non_os_disk_set") do rotationRate=$(smartctl -i $i |awk -F":" '/Rotation Rate/{print $2}') if [[ $rotationRate =~ "Solid State Device" ]];then echo $i |awk -F"/" '{print $3}' >> ssd_symbol_set elif [[ $rotationRate =~ "rpm" ]];then echo $i |awk -F"/" '{print $3}' >> hdd_symbol_set fi done fi
这是一个 Shell 脚本,主要作用是获取当前系统中所有硬盘的信息,并将非系统盘的硬盘区分为 SSD 和 HDD 两类,并将它们的设备符号分别保存在 ssd_symbol_set 和 hdd_symbol_set 两个文件中。具体实现步骤如下:
1. 使用 lsblk 命令获取当前系统中所有硬盘的信息,并通过 grep 命令过滤出包含 "part" 或 "boot" 字段的行,然后使用 awk 命令提取出硬盘设备符号,并使用 sed 命令将多个设备符号合并为一个正则表达式。
2. 使用 lsscsi 命令获取所有 SCSI 设备的信息,并通过 awk 命令提取出硬盘设备符号,并使用 grep 命令过滤掉系统盘的设备符号。
3. 遍历所有非系统盘的设备符号,使用 smartctl 命令获取硬盘信息,并使用 awk 命令提取出硬盘类型(SSD 或 HDD),然后将设备符号保存到对应的文件中。
最终,执行完该脚本后,可以通过查看 ssd_symbol_set 和 hdd_symbol_set 文件来获取系统中所有 SSD 和 HDD 的设备符号。
lsscsi -g | -E
这是一个IT类问题。 lsscsi 是一个列出 SCSI 设备的工具程序,其中 -g 标志告诉 lsscsi 显示通用 SCSI 设备节点名称。而 -E 标志告诉 lsscsi 显示所有信息,包括设备的模型、序列号、转换器类型等。因此,运行命令 "lsscsi -g | -E" 将显示所有 SCSI 设备的信息。