49 lines
1.3 KiB
Bash
49 lines
1.3 KiB
Bash
#!/bin/bash
|
||
export LANG="en_US.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}
|