cat /proc/`ps -ef|grep andlink_router | grep -v grep | awk '{print $2}'`/status | grep -E 'VmRSS|VmHWM' ps: unrecognized option: e BusyBox v1.25.1 () multi-call binary. Usage: ps Show list of processes w Wide output cat: can't open '/proc//status': No such file or directory,这种报错怎么解决
时间: 2024-03-26 14:39:26 浏览: 104
这种报错通常是由于您的命令中使用了一些特定于Linux系统的功能,而您正在尝试在不支持这些功能的系统上运行该命令。根据您的报错信息,我猜测您正在尝试在一个 BusyBox 系统上运行该命令,而该命令的参数可能不被 BusyBox 所支持。
要解决这个问题,您可以尝试使用 BusyBox 支持的 ps 命令来代替原始的 ps 命令。具体来说,您可以尝试以下命令:
```
busybox ps -w | grep andlink_router | grep -v grep | awk '{print $1}'
```
这将使用 BusyBox 的 ps 命令来查找包含 "andlink_router" 字符串的进程,并使用 awk 命令提取进程 ID。然后,您可以将其用于您的原始命令,如下所示:
```
cat /proc/$(busybox ps -w | grep andlink_router | grep -v grep | awk '{print $1}')/status | grep -E 'VmRSS|VmHWM'
```
这应该可以正常工作,并提供您所需的输出。
相关问题
env_partition=`cat /proc/mtd | grep u-boot-env | awk -F ':' '{print $1}'` boot=`cat /dev/$env_partition | grep bootversion | awk -F '=' '{print $2}'` 上述代码什么是意思
这段代码是用来获取硬件设备(如路由器)上的引导程序(bootloader)版本号的。
首先,这段代码通过读取 `/proc/mtd` 文件来获取 MTD(Memory Technology Devices)分区信息,然后使用 `grep` 命令找到包含 `u-boot-env` 字符串的行,并使用 `awk` 命令提取出对应分区的名称(即 `/dev/mtdX`)。
接下来,代码使用 `cat` 命令读取对应分区的内容,并使用 `grep` 和 `awk` 命令来提取出引导程序版本号(即 `bootversion` 的值)。最终,这个版本号被存储在 `boot` 变量中。
总之,这段代码的作用是获取硬件设备上的引导程序版本号。
#!/bin/bash ethn=eth0 while true do RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') sleep 1 RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') clear echo -e "\t RX `date +%k:%M:%S` TX" RX=$((${RX_next}-${RX_pre})) TX=$((${TX_next}-${TX_pre})) if [[ $RX -lt 1024 ]];then RX="${RX}B/s" elif [[ $RX -gt 1048576 ]];then RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') else RX=$(echo $RX | awk '{print $1/1024 "KB/s"}') fi if [[ $TX -lt 1024 ]];then TX="${TX}B/s" elif [[ $TX -gt 1048576 ]];then TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}') else TX=$(echo $TX | awk '{print $1/1024 "KB/s"}') fi echo -e "$ethn \t $RX $TX " done
这是一个 Bash 脚本,用于监测网络接口 eth0 的实时流量情况。脚本会每秒钟采集一次 eth0 的接收(RX)和发送(TX)数据量,计算出与上一次采集的差值,从而得出当前的实时流量值。最后将结果输出到屏幕上,格式为:
```
RX 时间戳 TX
eth0 RX流量值 TX流量值
```
其中,流量值会根据大小自动转换为 B/s、KB/s 或 MB/s。脚本会一直执行,直到手动停止(Ctrl+C)。
阅读全文