Centos7磁盘空间自动处理

本文主要基于logrotate机制处理类似nginx日志,以及其他自定义日志输出的场景,日志文件格式可以是log、txt等,具体操作如下:

 

#添加nginx
sudo useradd -r -s /sbin/nologin nginx

# 查看是否存在 nginx 用户
id nginx

# 或者查看 /etc/passwd 文件中是否有 nginx 用户记录
grep -i nginx /etc/passwd

# 清理方案 vi
/etc/logrotate.d/nginx
# 配置清理nginx日志 /home/tjgeo/apps/nginx/logs/*.log { daily missingok rotate 365 compress delaycompress notifempty create 0640 nginx nginx sharedscripts postrotate if [ -f /home/tjgeo/apps/nginx/logs/nginx.pid ]; then kill -USR1 `cat/home/tjgeo/apps/nginx/logs/nginx.pid` fi endscript } #其他目录清理类似 # 新增nohup.log所在目录的日志轮转配置 /home/tjgeo/logs/operation/*.log { daily missingok rotate 30 compress delaycompress notifempty create 0644 tjgeo tjgeo postrotate # 增加错误判断,确保脚本存在再执行 if [ -f /home/tjgeo/apps/tongyan-operation/bin/stop.sh ] && [ -f /home/tjgeo/apps/tongyan-operation/bin/start.sh ]; then # 执行停止脚本并等待1秒,确保进程终止 sh /home/tjgeo/apps/tongyan-operation/bin/stop.sh >/dev/null 2>&1 sleep 1 # 执行启动脚本 sh /home/tjgeo/apps/tongyan-operation/bin/start.sh >/dev/null 2>&1 else # 若脚本不存在,记录警告日志(需确保/var/log/目录可写) echo "[$(date)] stop.sh或start.sh不存在,日志轮转后未重启应用" >> /var/log/logrotate_tongyan_warn.log fi endscript } #配置检测 #触发测试 sudo logrotate -vf /etc/logrotate.d/nginx

 

日志文件删除

#检查当前子目录磁盘占用最高的10条记录

du -h --max-depth=1 | sort -hr | head -n 10

 

#删除指定目录的日志文件,且保留1年记录

find /home/tjgeo/apps/apache-tomcat-9.0.78/logs/ -name "*.txt*" -type f -mtime +180 -delete

find /home/tjgeo/logs/monitor/ -name "*.log*" -type f -mtime +360 -delete

find /home/tjgeo/nacos-2.1.1/bin/logs/ -name "*.log*" -type f -mtime +360 -delete

find /home/tjgeo/nacos-2.1.1/logs/ -name "*.log*" -type f -mtime +360 -delete

find /home/tjgeo/logs/operation/ -name "*.log*" -type f -mtime +360 -delete

#删除yyyy-MM-dd格式的文件夹

# 先预览符合条件的目录(推荐先执行此步骤确认)
find /home/tjgeo/logs/njdb-run/ -maxdepth 1 -type d -regextype posix-egrep -regex '.*/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])' -mtime +360 -print

# 确认无误后执行删除(谨慎操作,此命令不可逆)
find /home/tjgeo/logs/njdb-run/ -maxdepth 1 -type d -regextype posix-egrep -regex '.*/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])' -mtime +360 -exec rm -rf {} +

 

通过以上设置可以定期清理并优化磁盘占用问题。

 

posted @ 2025-08-27 11:33  李文学  阅读(4)  评论(0)    收藏  举报