加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

日志快把服务器磁盘占满了?日志的shell定时清除(一)

发布时间:2022-11-02 14:31:27 所属栏目:Linux 来源:未知
导读: 最近两天突然感觉服务器容量快满了,果不其然。[衰]
其中有两台服务器、磁盘占用量比例很高。
下面分析大神的脚本。并运行起来,再也不用担心服务器的硬盘被日志占满了。
基本思路是,定时

最近两天突然感觉服务器容量快满了,果不其然。[衰]

其中有两台服务器、磁盘占用量比例很高。

下面分析大神的脚本。并运行起来,再也不用担心服务器的硬盘被日志占满了。

基本思路是,定时运行可以清除以前某个时间日志的脚本。

项目背景

需要掌握熟悉shell,crontab

日志目录:/www/logs/php

文件名词要求:前缀固定+日期(phplog-2020-10-27.log)

应用程序每天自动创建日志文件

脚本的第一步先得到要删除时间day1日期格式,然后再到日志目录删除日志文件。

# 获取时间
#date 显示当前日期  格式为 %Y-%m-%d
[root@zjt-baidu logrotate]# date  +%Y-%m-%d 
2020-10-28
#date -d  -d、 --date=字符串显示由字符串描述的时间,而不是“now”
[root@zjt-baidu logrotate]# date -d "-1 day" +%Y-%m-%d 
2020-10-27
[root@zjt-baidu logrotate]# day=`date -d "-1 day" +%Y-%m-%d`
[root@zjt-baidu logrotate]# echo $day
2020-10-27
#进入目录
# cd /www/log/php
 
# 删除文件  
rm /www/log/php/phplog-2020-10-26.log
#添加 -f 选项 强制删除,不进行交互
rm /www/log/php/phplog-2020-10-26.log

得到下面的clearLog.sh文件的内容

第3行和第4行 调试用,为了保证不误操作,一定先打印出文件名,确认无误后再打开注释,

然后执行。不然删除错误就完蛋了。[黑脸]

  #/bin/bash
   LOGDIR='/www/logs/php'
   DAY=`date -d "-1 day" +%Y-%m-%d`
   echo $DAY 
   cd $LOGDIR
   echo $LOGDIR/phplog-${DAY}.log
   #rm -f $LOGDIR/phplog-${DAY}.log

但上面的shell要求满足应用程序每天可以自动创建新文件。

兼容不能创建新文件的需求

DATE=`date -d '1 days ago' "+%Y-%m-%d"`
#不带日期的日志文件   拷贝   为带日期的日志文件
cp /www/logs/phplog.log /www/logs/phplog-$DATE.log
>/www/logs/phplog.log
chown -r www:www /www/logs/phplog.log

最终的清理日志文件linux 强制删除,保留15天

   #/bin/bash
   LOGDIR='/www/logs/php'
   DAY=`date -d "-15 day" +%Y-%m-%d`
   echo $DAY 
   cd $LOGDIR
   echo $LOGDIR/phplog-${DAY}.log
   DATE=`date -d '1 days ago' "+%Y-%m-%d"`
    #不带日期的日志文件   拷贝   为带日期的日志文件
    cp /www/logs/phplog.log /www/logs/phplog-$DATE.log
    >/www/logs/phplog.log
    #修改权限
  
   chown -R www:www /www/logs/phplog.log
   rm -f $LOGDIR/phplog-${DAY}.log

如果本文对你有帮助,请转发,说不定你的朋友也需要它。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!