Linux远程删除日志脚本,linux 删除日志脚本

线上有一个日志系统,放在/data/log目录,有时候出现磁盘空间不足的情况,所以写了一个脚本,删除前一天的日志文件。

内容如下:

#!/bin/bash

eve=`date -d "1 day ago" +"%Y%m%d"`

startime=`date +%Y-%m-%d" "%H:%M:%S`

echo "######################################" >> /opt/clean_log.log

echo "$startime 开始删除文件/data/log/messages-$eve" >> /opt/clean_log.log

rm -rf /data/log/messages-$eve

if [ ! -e /data/log/messages-$eve ];then

echo "删除成功" >> /opt/clean_log.log

else

echo "删除失败" >> /opt/clean_log.log

fi

startime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$startime 开始切割文件/var/log/message" >> /opt/clean_log.log

cd /var/log/

mv -f messages messages-$eve

if [ -e /var/log/messages-$eve ];then

echo "切割成功" >> /opt/clean_log.log

else

echo "切割失败" >> /opt/clean_log.log

fi

/etc/init.d/rsyslog restart >> /dev/null

if [ `echo $?` -eq "0" ];then

echo "重启rsyslog服务成功" >> /opt/clean_log.log

else

echo "重启rsyslog服务失败" >> /opt/clean_log.log

fi

startime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$startime 开始删除文件/var/log/message-$eve" >> /opt/clean_log.log

rm -rf /var/log/messages-$eve

if [ ! -e /var/log/messages-$eve ];then

echo "删除文件成功" >> /opt/clean_log.log

else

echo "删除文件失败" >> /opt/clean_log.log

fi

说明:

rm -rf删除的时候,不管文件是否存在

用 echo $? 判断的时候,始终都是0

所以用! -e $filename 判断文件不存在,就说明文件删除成功了。

/var/log/message是系统日志,虽然系统默认会自动切割,但不是每天都会切割。

所以脚本里面进行了切割。

一旦切割之后,message不会自动生成,需要重启rsyslog服务才会生成。

最后创建任务计划,每天晚上定期执行就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值