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:19 浏览: 39
Qnx425.rar_qnx_qnx425_tcp qnx
5星 · 资源好评率100%
如果你想在每个目录中保留最近的两个文件,并删除第一个文件,可以使用下面的脚本:
```
#!/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_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"
top -i 1 >> $TOP_FILE
hogs -i 1 >> $HOGS_FILE
pidin a >> $PIDIN_FILE
# 删除第一个文件
cd $TOP_DIR && ls -t | awk 'NR>2' | xargs rm -f
cd $HOGS_DIR && ls -t | awk 'NR>2' | xargs rm -f
cd $PIDIN_A_DIR && ls -t | awk 'NR>2' | xargs rm -f
sleep 10
done
```
这个脚本与之前的脚本基本相同,只是在删除文件时使用了不同的命令。在这个脚本中,我们仍然使用cd命令进入每个目录,并使用ls -t命令按时间排序列出所有文件。但是,我们使用awk命令跳过最新的两个文件,并使用tail命令选择第一个文件,最后使用rm命令删除它。这样就可以保留最近的两个文件,并删除第一个文件了。
阅读全文