需求:
判断目录 /tmp/jstack 是否存在,不存在则新建一个目录,若存在则删除目录下所有内容。
每隔 1 小时打印 tomcat的 jstack 信息,并以 jstack_${当前时间} 命名文件,每当目录
超过 10 个文件后,删除最旧的文件。
实现:
tmp.sh
#!/bin/bashdirpath=/tmp/jstackif [ ! -d "$dirpath" ];thenmkdir "$dirpath"
elserm -rf "dirpath"/*
ficd "$dirpath"while :
docurrent_time=$(date +'%F'-'%T')pid=$(ps -ef | grep 'tomcat' | grep -v grep | awk '{print $2}')#replace the "tomcat" to your own processjstack $pid >> "jstack_${current_time}"file_count=$(ls | wc -l)if [ "$file_count" -gt 10 ];thenrm -f $(ls -tr | head -1)fisleep 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]#