Linux下服务器日志清理

之前在做一个项目,服务器部署在Linux系统下,后来发现服务器运行每天产生大量的日志文件,一个多月产生了60多G的日志文件,消耗巨大的存储空间。后来就想办法让Linux系统自动每天清理7天以前的日志文件。

  实现过程是写一个删除日志的shell脚本。

  解释一下,服务器产生的日志放在/home/webServive/logs路径下。

  使用相关用户登录Linux系统,例如我用的用户是ryan,然后在/home/webServive路径下新建logs.sh脚本,编辑相关shell脚本代码,如下所示。此处的角标表示的是你在此服务器下部署的应用数量,我这里是三台;

#!/bin/bash
logs_paths[0]="/home/webServive/logs"
logs_paths[1]="/home/webServive/logs
"logs_paths[2]="/home/webServive/logs"

     for logs_path  in ${logs_paths[@]};
   do
        find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "localhost.*.log" -exec rm -rf {} \;
     #备份日志
        cp   $logs_path/catalina.out  $logs_path/catalina.`date +%Y-%m-%d`.log
        #清空日志 
      cat /dev/null > $logs_path/catalina.out
    echo $logs_path
done

以上是脚本内容;
保存文件;

授权
chmod 777 /home/logs.sh


加载定时
crontab -e
30 23 * * * sh /home/logs.sh                                              注:此处的时间是每天23点30分定时清理


重启定时文件
service crond restart  



https://www.cnblogs.com/lzhryan/articles/6888128.html      此网址是网上所找,大家可以借鉴;

猜你喜欢

转载自blog.csdn.net/StarLOVELeaf/article/details/78960556