定期清空日志文件

一个关于如何在指定文件大于1GB后,自动删除的问题。
批处理代码如下:
#!/bin/bash 
# 当/var/log/syslog大于1GB时
# 自动将其备份,并清空
# 注意这里awk的使用
if ! [ -f /var/log/syslog ]
then
echo "file not exist!"
exit 1
fi
if [ `ls -l /var/log/syslog|awk '{print $5}'` -gt $((1024*1024)) ]
then
cat /var/log/syslog >> ~/log/history # 将日志备份
echo >> ~/log/history # 增加一个空行
date >> ~/log/history # 记录时间
echo "-------------------------------------" >> ~/log/history
echo > /var/log/syslog # 清空
fi



Linux系统的日志文件,比如Apache的日志文件,在使用了一段时间后,可能会变得比较大,如果不清空的话,可能会发生这样那样的问题。定期清空一下这些日志文件是比较好的办法。
  这里以清空Apache的日志文件为例,我使用的是系统的默认配置,日志的文件在/var/log/httpd下面,访问日志的格式是:
  CustomLog logs/access_log combined
  生成的访问日志文件类似于:access_log_20101118……,可以使用shell脚本定期删除日志文件,只保留近3天的文件,以免日志文件占满磁盘空间。
  建立清除日志文件的shell脚本,文件名为clean_log,存放目录任意
  #! /bin/bash 
  logdir=/var/log/httpd
  cd ${logdir}
  declare -i filesum=`ls access_log_* | wc -l`
  declare -i delnum=$filesum-3
  if [ "${delnum}" -ge 1 ];then
  rm -rf `ls -tr access_log_* | head -${delnum}`
  fi
  #添加运行权限:chmod 755 clean_log
  #再添加为自动运行任务:vi /etc/crontab,添加:
  01 04 * * * /root/Desktop/clean_log
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值