您的位置:首页 > 运维架构 > Shell

linux下使用shell编写的删除历史文件的脚本 find | xargs tar 有文件个数限制哦

2010-04-15 17:01 1156 查看
#!/bin/bash

# crontab -e

# 0 0 * * 1 /usr/$project/clearlog.sh /usr/$project/log $project.log. 10080 31

#surport tgzDays-before

if [ "$#" -lt 3 ]; then

echo usage: $0 /<log-directory/> /<log-file-prefix/> /<mins-before/> /<tgzDays-before/>

exit 1

fi

cd $1

if [ "$?" != "0" ]; then

echo cannot change directory to $1

exit 2

fi

(

echo

echo CMD: $0 $*

tgzdays=31

if [ "$#" -gt 3 ]; then

tgzdays=$4

fi

echo ========= CLEAR tgz @ `date` =========

find . -name "_$2*.tgz" -ctime +${tgzdays} | xargs rm -f

find . -name "_$2*.tar.gz" -ctime +${tgzdays} | xargs rm -f

echo ========= tar tgz @ `date` =========

today=`date '+%Y%m%d%H%M'`

#yyyymmddhhmm=`date '+%Y%m%d%H%M'`

#gzip after tar. NOTE: space is enough.

find . -name "$2*" -mmin +$3 | xargs tar rf _$2$today.tar

gzip _$2$today.tar

rm _$2$today.tar

#tar & gzip. NOTE: limit by -s 129924

#find . -name "$2*" -mmin +$3 | xargs -n 65535 -s 129024 tar czf _$2$today.tgz

echo ========= CLEAR LOG @ `date` =========

find . -name "$2*" -mmin +$3 | xargs rm -f

) >> `dirname $0`/clearlog.log 2>&1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: