shell 遍历目录文件并根据文件名和日期匹配度删除文件

 

 shell 遍历目录文件并根据文件名和日期匹配度删除文件

#!/bin/sh  

basedir="/data/nginx/logs"

logdir="${basedir}/app"

datestr=`date -d -1day  +%Y%m%d`

tmpdir="${basedir}/bak/app/${datestr}"

 echo $tmpdir

 if [ ! -x "$tmpdir" ]; then

    mkdir "$tmpdir" -p;

 fi

arr=`ls -l $logdir | grep ^- | awk '{print $NF}' `

for f in $arr

 do

    if [ ${#f} -gt 20 ]; then

 

       s=${f:4:8};

       if [ "$s" -le "$datestr" ]; then

        mv  $logdir/$f $tmpdir;

       fi

    fi

done

#delete before 30days file

datestr=`date -d -30day  +%Y%m%d`;

echo "rm date:${datestr}"

rm -rf "${basedir}/bak/app/${datestr}";

你可能感兴趣的:(shell)