一、编写shell脚本 task4delExpiredFiles.sh
#!/bin/bash #配置定时任务方法 #crontab -e #输入命令并保存退出 * * * * * /cloud/tesh/task4delExpiredFiles.sh >> /cloud/tesh/logs/task4delExpiredFiles_$(date "+\%Y-\%m-\%d").log 2>&1 function deleteFiles(){ targetDir=$1 if [ ! -d "$targetDir" ];then echo "===>target dir [${targetDir}] is not existed,exit." return fi formatedTimeStr=$(date -d @$beforeTimeStamp "+%Y-%m-%d %T") echo "=========>即将删除 $formatedTimeStr 之前的文件<=========" operated='false' #根据文件修改时间升序排列 for file in `ls -rt $1` do dir_or_file=$1"/"$file filetimestamp=`stat -c %Y $dir_or_file` timecha=$[$filetimestamp - $beforeTimeStamp] echo "time dif is "$timecha if [ $timecha -lt 0 ];then operated='true' if test -f $dir_or_file then echo "===>删除文件 $dir_or_file ..." rm -f $dir_or_file elif test -d $dir_or_file then echo "===>删除文件夹 $dir_or_file 中所有的文件..." rm -rf $dir_or_file fi fi done if [ $operated = 'true' ];then echo "===>删除过期文件完成." else echo "===>没有符合条件的过期文件,退出." fi echo "=======================================================" } #源文件根目录,手动配置 base_file_dir=/cloud/tesh/file #获取当前时间戳,单位为秒,date --date=20151117 +%s 将指定时间转换为秒 current_timeStamp=`date +%s` #文件最大保留天数 max_file_keep_days=7 #计算时间差,单位为秒 let "diff=$max_file_keep_days*24*60*60" let "beforeTimeStamp=$current_timeStamp-$diff" echo "before is "$beforeTimeStamp #调用删除文件函数 deleteFiles $base_file_dir
二、编写定时任务
执行命令 crontab -e 输入如下文本保存退出即可 * * * * * /tesh/task4delExpiredFiles.sh >> /tesh/logs/task4delExpiredFiles_$(date "+\%Y-\%m-\%d").log 2>&1