免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1712 | 回复: 4
打印 上一主题 下一主题

定时清空文件!help... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-18 12:57 |只看该作者 |倒序浏览
各位可否帮我写一个shell.
功能主要是 判断某个文件达到300M的空间后,存为另外的一个文件名并自动清空该文件!

论坛徽章:
0
2 [报告]
发表于 2003-12-18 13:36 |只看该作者

定时清空文件!help...

size=`ls -s file|cut -f1 -d" "`
if $size > ?? ; then
    mv file file_bakcup
    touch file
fi


size以512字节为单位

论坛徽章:
0
3 [报告]
发表于 2003-12-18 13:52 |只看该作者

定时清空文件!help...

bak_clear.sh:

aa=`ls -l  $1 |awk 'BEGIN {long size;}{size=$5}END{if (size > 1024*1024*300) print "y";else print "n"}';
if [ $aa = 'y' ]
then
          cp $1 $1.bak
          cat /dev/null > $1
fi

$sh del_clear.sh {filename}

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-12-19 03:18 |只看该作者

定时清空文件!help...

若系統裝有 logrotate 這工具,
請 man logrotate ,找一找 size 的設定...

如下例:
  1.        /path/to/your/big/file {
  2.            rotate 4
  3.            mail user@your.com
  4.            size=300M
  5.            create 0664 user group
  6.        }
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-12-19 08:24 |只看该作者

定时清空文件!help...

如果有得力的工具当然好了。如果没有相应的工具,就用系统的cron机制来解决吧!
1.吧需要监控的文件或目录以绝对路径形式置于列表文件中(filelist)
2.写shell对其进行监控
  1. bakdir=yourbackdir
  2. cat filelist|while read file
  3. do
  4.   /bin/ls -l $file|awk '$5>307200000{printf"mv %s %s.bak\ntouch %s\n",$file $file $file}' | sh
  5. done
复制代码

3.将此shell命令并赋予执行权。
4.在用户的crontab中加入
  1. 5  *  *  *  *  yourshellpathandname
复制代码

系统将于每小时检测一次,当然你可以根据文件增长速度调整检测间隔,直到满意为止。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP