From 3f6b76d9121de604cd60fbbaa347c751514d2555 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Sat, 28 Oct 2023 16:09:11 +0800 Subject: [PATCH] fix: rm expired file shell script --- tools/misc/rmexpiredfile.sh | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tools/misc/rmexpiredfile.sh diff --git a/tools/misc/rmexpiredfile.sh b/tools/misc/rmexpiredfile.sh new file mode 100644 index 00000000..8b88938d --- /dev/null +++ b/tools/misc/rmexpiredfile.sh @@ -0,0 +1,51 @@ +#!/bin/bash +export LANG="zh_CN.UTF-8" +# --------------------------------------------------------------------- +# 定时清理反馈结果的日志文件夹 仅保留最近2周记录 +# 文件夹格式:yyyy-mm-dd +# Author : Madr +# Date : 2020年10月15日16:57:22 +# --------------------------------------------------------------------- + +#15天以前日期 +dayAgo=$(date -d"15 day ago" +%Y-%m-%d) +#日志文件路径 +logPath=/home/gsidc/app/nhis/log/ +#记录操作日志 +printFile=/home/gsidc/app/nhis/remove_nhis.log + +echo '当前时间' `date +%Y-%m-%d` `date +%T` >> ${printFile} +echo '10天以前' ${dayAgo} >> ${printFile} +echo '开始删除,删除的目录列表如下' >> ${printFile} + +dayAgoStr=${dayAgo}" 00:00:00" +dayAgoTime=`date -d "$dayAgoStr" +%s` + +for dir in $(ls $logPath) +do +if [ ! $dir ]; +then +echo 'dir为空,安全起见,本次任务终止!'>> ${printFile} +exit +else + #仅删除目录文件 + if [ -d $logPath$dir ] ; + then + #因为文件夹名称为日期格式(yyyy-mm-dd), 转为时间戳进行比较 + dirStr=${dir}" 00:00:00" + dirTime=`date -d "$dirStr" +%s` + if [ $dirTime -lt $dayAgoTime ]; + then + echo ${logPath}"$dir" >> ${printFile} + #删除指定日期之前的目录 + rm -rf ${logPath}"$dir" + fi + else + echo $logPath$dir '不是文件夹,不删除'>> ${printFile} + fi +fi +done +echo '删除完成!'>> ${printFile} +———————————————— +版权声明:本文为CSDN博主「Mar5342」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 +原文链接:https://blog.csdn.net/mar5342/article/details/109121623 \ No newline at end of file