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
# 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
相关文章推荐
- Linux下使用Shell脚本删除一个目录下的所有子目录和文件
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- linux下遍历目录和文件,删除过期天数目录或文件shell脚本
- 8.15_Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用
- 如何编写简单的Shell脚本(Script)文件之Linux的基本操作
- SHELL学习之一《Linux文件查找命令find,xargs详述》(转)
- 【Linux】使用SHELL脚本实时查看文件大小
- Linux 定时删除文件或文件夹的shell脚本
- 用shell脚本在linux下删除和替换文件
- Linux中find批量删除空文件及空文件夹脚本
- CentOS Linux自动备份文件到远程FTP服务器并删除指定日期前的备份Shell脚本
- 使用linux 的shell脚本进行sftp文件上传与下载 【转】
- linux 下使用expect编写shell 脚本交互访问远程服务器
- linux使用shell脚本实现自动登录scp传输文件到其他服务器
- Linux下使用Shell脚本向FTP服务器上传或下载一个文件
- Linux下shell脚本编写:创建文件
- shell脚本使用cat和EOF组合添加和删除文件内容