linux定时清理日志,释放空间

方案一

使用cronolog分割tomcat的catalina.out文件,并且crontab进行定时删除日志。

日志按照时间分隔

我们采用日期形式切割catalina.out 日志,因此采用cronlog 软件切割:

安装 cronlog

yum install -y cronolog httpd

1

或者

sudo apt-get install gcc

wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

tar -xzvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

sudo suroot

make install

查看cronolog是否安装: whereis cronolog

问题:

        访问多, 打印日志多等等原因, 导致服务器磁盘空间被占满, 虽然不会影响整体的使用, 但可能会有部分功能不能正常使用. 此时就需要去清理日志文件. 来释放磁盘空间.

解决:

1.可以手动清理日志文件. ( 坏处: 麻烦, 浪费时间 )

echo ’ ’ > 文件名称        //写入空( 也就是清空 )

[root@localhost /]# echo '' > /opt/apache-tomcat9-xinhua8089/logs/catalina.out

2.定时去清理日志文件. ( 好处: 方便, 无需人为操作 )

2.1 编写脚本 并 写入脚本內容! ( 位置/名称 随意 )

[root@localhost home]# vim cleanCatalina.sh

#清空 tomcat/logs/下的catalina.out

echo '' > /opt/apache-tomcat9-xinhua8089/logs/catalina.out

logs_path="/opt/apache-tomcat9-xinhua8089/logs"

find $logs_path -mtime +30 -name "catalina.*.log" -exec rm -rf {} \;

find $logs_path -mtime +30 -name "host-manager.*.log" -exec rm -rf {} \;

find $logs_path -mtime +30 -name "localhost.*.log" -exec rm -rf {} \;

find $logs_path -mtime +30 -name "localhost_access_log.*.txt" -exec rm -rf {} \;

find $logs_path -mtime +30 -name "manager.*.log" -exec rm -rf {} \;

echo '' > $logs_path/catalina.out

2.2 给该脚本赋权. ( r-4(用户 - 可读) , w-2(组 - 可写) , x-1(其他用户 - 可执行) )

[root@localhost home]# chmod 755 cleanCatalina.sh

2.3 编辑定时任务. ( 看自己的需求 )

[root@localhost cache]# crontab -e

#每周六凌晨3点执行此脚本. ( 具体看每天日志的存储量. )

0 3 * * 6  /home/cleanCatalina.sh

2.4 重启定时任务 ( 不重启不生效. . . )                      ★★★谨记★★★

[root@localhost cache]# service crond restart

2.5 查看定时任务

[root@localhost cache]# crontab -l

你可能感兴趣的:(linux定时清理日志,释放空间)