linux 脚本实现定时清理超时文件

1.生成.sh文件
日志输出目录:/user/FileClear/
folderFile0:清理的目录
timeout0:当前时间超过清理文件的最后修改时间多少秒的文件,进行清理
type0:对于目录下,文件夹为空 是否需要删除 0:不删除 1:删除

#!/bin/sh
#当前时间
timecur=$(date "+%Y-%m-%d %H:%M:%S")

function deleteTimeOutFile(){
	local folderFile=$1
	local timeout=$2
	local type=$3
	local outpath="/user/FileClear/info$(date "+%Y%m").log"
	if [ -d "$folderFile" ] ; then
		local folderFileList=`ls $folderFile`
		for folderFileOne in $folderFileList
		do
			local folderFileNew=$folderFile$folderFileOne
			
			if [ -d "$folderFileNew" ] ; then
				# 是文件夹
				echo $(date "+%Y-%m-%d %H:%M:%S")" 文件夹:"$folderFileNew
				deleteTimeOutFile $folderFileNew"/" $timeout $type
				if [ "`ls -A $folderFileNew`" = "" ]; then
					# type文件夹是否需要删除  0:不删除  1:删除
					if [ $type -eq 1 ]; then
						echo $(date "+%Y-%m-%d %H:%M:%S")" 删除文件夹 path:"$folderFileNew" timeout:"$timeout >> $outpath	
						rm -rf $folderFileNew
					fi
				fi
					
			elif [ -f "$folderFileNew" ] ; then  # 是文件
				echo $(date "+%Y-%m-%d %H:%M:%S")" 文件:"$folderFileNew
				local filetimestamp=`stat -c %Y $folderFileNew`  # 文件最后修改时间
				local timestamp=`date +%s`  # 当前系统时间
				local timecha=$[$timestamp - $filetimestamp]
				if [ $timecha -gt $timeout ];then
					echo $(date "+%Y-%m-%d %H:%M:%S")" 删除文件 path:"$folderFileNew" timeout:"$timeout"  timecha:"$timecha >> $outpath	
					rm -rf $folderFileNew
				fi

			else
				echo $(date "+%Y-%m-%d %H:%M:%S")" 都不是 path:"$folderFileNew >> $outpath	
			fi

		done
	else
		echo $(date "+%Y-%m-%d %H:%M:%S")" 文件夹不存在 path:"$folderFile >> $outpath	
	fi

}
folderFile0=/user/FileClear/testPath/ # 路径
timeout0=86400 # 单位秒
type0=1 # type文件夹是否需要删除  0:不删除  1:删除
deleteTimeOutFile $folderFile0 $timeout0 $type0

猜你喜欢

转载自blog.csdn.net/u013015301/article/details/89644463
今日推荐