QNX_LOG_DIR="/qnxlog" TOP_DIR="$QNX_LOG_DIR/top" HOGS_DIR="$QNX_LOG_DIR/hogs" PIDIN_A_DIR="$QNX_LOG_DIR/pidin" # 创建输出目录,如果不存在 mkdir -p $TOP_DIR mkdir -p $HOGS_DIR mkdir -p $PIDIN_A_DIR TOP_FILE="$TOP_DIR/top-$(date +%Y%m%d-%H%M%S).log" HOGS_FILE="$HOGS_DIR/hogs-$(date +%Y%m%d-%H%M%S).log" PIDIN_FILE="$PIDIN_A_DIR/pidin-$(date +%Y%m%d-%H%M%S).log" while true do top -i 1 >> $TOP_FILE hogs -i 1 >> $HOGS_FILE pidin a >> $PIDIN_FILE sleep 10 done 当每个文件夹数量大于2时。删除文件名中的时间较小的文件
时间: 2024-03-18 15:42:01 浏览: 69
可以使用以下脚本来实现该功能:
```
#!/bin/bash
QNX_LOG_DIR="/qnxlog"
TOP_DIR="$QNX_LOG_DIR/top"
HOGS_DIR="$QNX_LOG_DIR/hogs"
PIDIN_A_DIR="$QNX_LOG_DIR/pidin"
# 创建输出目录,如果不存在
mkdir -p $TOP_DIR
mkdir -p $HOGS_DIR
mkdir -p $PIDIN_A_DIR
while true
do
top -i 1 >> $TOP_DIR/top-$(date +%Y%m%d-%H%M%S).log
hogs -i 1 >> $HOGS_DIR/hogs-$(date +%Y%m%d-%H%M%S).log
pidin a >> $PIDIN_A_DIR/pidin-$(date +%Y%m%d-%H%M%S).log
# 当每个文件夹数量大于2时,删除文件名中的时间较小的文件
if [ $(ls -1 $TOP_DIR | wc -l) -gt 2 ]
then
rm $TOP_DIR/$(ls -1 $TOP_DIR | head -n 1)
fi
if [ $(ls -1 $HOGS_DIR | wc -l) -gt 2 ]
then
rm $HOGS_DIR/$(ls -1 $HOGS_DIR | head -n 1)
fi
if [ $(ls -1 $PIDIN_A_DIR | wc -l) -gt 2 ]
then
rm $PIDIN_A_DIR/$(ls -1 $PIDIN_A_DIR | head -n 1)
fi
sleep 10
done
```
这个脚本首先会创建输出目录,然后进入一个无限循环,每 10 秒钟会执行一次 top、hogs 和 pidin 命令,并将输出写入对应的文件中。每次写完文件后,会检查该文件夹中的文件数量是否大于 2,如果是,则删除文件名中时间较小的文件。这样可以保证每个文件夹中只保留最新的两个文件。
阅读全文