首页 - 信息 - Linux环境使用计划任务删除过期的文件脚本

Linux环境使用计划任务删除过期的文件脚本

2023-10-08 14:31

1。编写shell脚本www.gsm-guard.net

#!/bin/bash
#配置定时任务方法
#crontab -e
#输入命令并保存退出* * * * * /cloud/tesh/task4delExpiredFiles.sh >> /cloud/tesh/logs/task4delExpiredFiles_$(date  "+\%Y-\%m-\%d").log 2>&1
函数删除文件(){
    targetDir=$1
    
    如果[! -d "$targetDir"];然后
       echo "===>目标目录[${targetDir}]不存在,退出。"
       返回
    fi
    formatedTimeStr=$(日期 -d @$beforeTimeStamp "+%Y-%m-%d %T")
    echo "=========>$formatedTimeStr之前的文件即将被删除<========="
    已操作=''
    #按照文件修改时间升序排列
    用于 文件  `ls -rt $1`
    do
      dir_or_file=$1"/"$文件
      filetimestamp=`stat -c %Y $dir_or_file`timecha=$[$filetimestamp - $beforeTimeStamp]
      回声 "时间差异为 "$timecha
      如果 [ $timecha -lt 0 ];那么
        已操作='true'
        if测试-f $dir_or_file
           然后
           echo "===>删除文件 $dir_or_file ..."
           rm -f $dir_or_file
        elif测试-d $dir_or_file
          然后
             echo "===>删除$dir_or_file文件夹中的所有文件..."
           rm -rf $dir_or_file
         fi
       fi
    完成
    如果 [ $操作 = 'true' ];然后
      echo ===>过期文件删除完成。
    否则
      echo "===>没有符合条件的过期文件,退出。"
    fi
    回声====================================== ===================
    
}
#源文件根目录,手动配置base_file_dir=/cloud/tesh/文件
#获取当前时间戳,单位为秒,date --date=20151117 +%s 将指定时间转换为秒
current_timeStamp=`日期 +%s`
#文件最大保留天数
max_file_keep_days=7
#计算时间差,以秒为单位
让 "diff=$max_file_keep_days*24*60*60""beforeTimeStamp=$current_timeStamp-$diff"
echo "之前是 "$beforeTimeStamp
#调用删除文件函数
删除文件 $base_file_dir 

2.编写计划任务

执行命令 crontab -e
输入以下文字保存退出
* * * * * /tesh/www.gsm-guard.net >> /tesh/logs/task4delExpiredFiles_$(date "+\%Y -\ %m-\%d").log 2>&1