linux shell实现目录判断,定期输入文件信息,当文件个数大于10个时,进行删除

需求:

判断目录 /tmp/jstack 是否存在,不存在则新建一个目录,若存在则删除目录下所有内容。

每隔 1 小时打印 tomcat的 jstack 信息,并以 jstack_${当前时间} 命名文件,每当目录

超过 10 个文件后,删除最旧的文件。

实现:

tmp.sh

#!/bin/bash

dirpath=/tmp/jstack

if [ ! -d "$dirpath" ];then
   mkdir "$dirpath"
else
   rm -rf "dirpath"/*
fi

cd "$dirpath"

while :
do
 current_time=$(date +'%F'-'%T')
 pid=$(ps -ef | grep 'tomcat' | grep -v grep | awk '{print $2}')
 #replace the "tomcat" to your own process
 jstack $pid >> "jstack_${current_time}"
 file_count=$(ls | wc -l)
 if [ "$file_count" -gt 10 ];then
   rm -f $(ls -tr | head -1)
 fi
 sleep 10
#set your own time(seconds)
done

验证:

[root@logstash jstack]# ll
total 280
-rw-r--r-- 1 root root 24924 May 27 14:25 jstack_2024-05-27-14:25:53
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:03
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:14
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:24
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:34
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:44
-rw-r--r-- 1 root root 24924 May 27 14:26 jstack_2024-05-27-14:26:56
-rw-r--r-- 1 root root 24924 May 27 14:27 jstack_2024-05-27-14:27:07
-rw-r--r-- 1 root root 24924 May 27 14:27 jstack_2024-05-27-14:27:17
-rw-r--r-- 1 root root 24924 May 27 14:27 jstack_2024-05-27-14:27:29
[root@logstash jstack]# 

  • 29
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑要上天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值