定时清理脚本

应用场景:

1.有些文件已经上传到云渡的FTP目录,但是光闸同步失败导致没有同步过去,使文件形成堆积,此时需要使用定时任务去清理这些文件;

2.有些文件光闸同步成功了,但是第三方应用取文件失败,导致文件在云渡的FTP目录堆积,也需要通过定时任务去清理这些堆积的文件;

#!/usr/bin/bash
#外网定时任务:
#1、每小时清除/app/yundu/data1/exchange_in/node1/ 和 /app/yundu/data1/exchage_out/ 下1小时前的文件(文件包括空文件夹)
#2、每天定时清除/app/yundu/data1/ftp 下1天前的文件(文件不包括空文件夹)
#内网定时任务:
#1、每小时清除/app/yundu/data1/exchange_in/ 1小时前的文件(文件包括空文件夹)
#2、每半时清除/app/yundu/data1/exchange_out/node1 半小时前的文件(文件包括空文件夹)
#3、每天定时清除/app/yundu/data1/ftp 下1天前的文件(文件不包括空文件夹)

#使用举例:
#30 */1 * * * sh /home/dep/yunduRemove_cron.sh exch_out
#0 */1 * * * sh /home/dep/yunduRemove_cron.sh exch_in
#0 3 * * * sh /home/dep/yunduRemove_cron.sh ftp

function exch_out_clean()
{
	dir=/app/yundu/data1/exchange_out/
	#cd $dir
	#删除周期为30分钟
	min=30
	echo "`date` find $dir -type d -mmin +$min -empty -exec rm -rf {} \;" >> ${filename}.log
	#删除30分钟前的空文件夹
	find $dir -mindepth 1 -type d -mmin +$min -empty -exec rm -rf {} \;
	#删除30分钟前的文件
	find $dir -type f -mmin +$min -exec rm -rf {} \;
}


function exch_in_clean()
{
    dir=/app/yundu/data1/exchange_in/node1/
    #cd $dir
    #删除周期为60分钟
    min=60
    echo "`date` find $dir -type d -mmin +$min -empty -exec rm -rf {} \;" >> ${filename}.log
    #删除60分钟之前的空目录
    find $dir -mindepth 1 -type d -mmin +$min -empty -exec rm -rf {} \;
    #删除60分钟之前的文件
	find $dir -type f -mmin +$min -exec rm -rf {} \;
}

function ftp_clean()
{
    dir=/app/yundu/data1/ftp/
    #cd $dir
    day=1
    echo "`date` find $dir -type f -mtime +$day -exec rm -rf {} \;" >> ${filename}.log
    #删除1天前的文件
	find $dir -type f -mtime +$day -exec rm -rf {} \;
}

filename=`basename ${0%.*}`
param=$1
if [ $param == "exch_out" ];then
	exch_out_clean
elif [ $param == "exch_in" ];then
	exch_in_clean
elif [ $param == "ftp" ];then
	ftp_clean
fi

 

你可能感兴趣的:(linux,云嘉云-云渡,script-shell)