搜索
虾皮社区 首页 编程开发 操作系统 查看内容

如何清理宝塔面板/var/log/日志和缓存占用磁盘空间很大的文件

2025-1-5 15:31| 发布者: happyxp| 查看: 15| 评论: 0

摘要: 今天发现网站反应很慢,登录宝塔后台查看发现系统盘占用已经满了,最近没有上传东西,研究了一下是日志文件占满了,接下来就需要优化服务器存储空间。一、/var/log/目录为了识别占用大量空间的目录,请执行以下命令 ...
今天发现网站反应很慢,登录宝塔后台查看发现系统盘占用已经满了,最近没有上传东西,研究了一下是日志文件占满了,接下来就需要优化服务器存储空间。
一、/var/log/目录
为了识别占用大量空间的目录,请执行以下命令:

du -h --max-depth=1 /var/log

(以下结果已经清理过了,原来的文件占用20G左右)
48K     /var/log/tuned
38M     /var/log/audit
1.7M    /var/log/anaconda
0       /var/log/rhsm
0       /var/log/ntpstats
2.7G    /var/log

经检查,发现 /var/log 目录占用了大量空间。继续查看是就是在此目录下的文件,其他文件夹都占用很小。

为解决此问题,参考了Linux Journal日志文件维护的建议,采取了以下步骤:
实施建议的日志大小限制配置,从而减少了磁盘空间使用量。
进一步探索了日志管理工具 logrotate 的潜在用途,以增强日志管理能力。
二、/var/log/btmp和secure 日志
为了识别目录中的大文件,可以使用 find 命令结合 du:

find /var/log/ -type f -size +100M -exec du -h {} +

714M    /var/log/secure-20250105
2.0G    /var/log/btmp-20250105

执行后,发现名为secure-*和btmp-* 的大文件。但是,在考虑删除之前,应谨慎操作,以免影响系统操作的监控。

管理 /var/log/secure-*和btmp-*  的建议:

直接从宝塔后台面板操作,找到对应的文件,例:btmp-20250105,就是在2025年1月5日最后修改的文件,带日期的备份之后删除即可,btmp本体文件不要删除!
备份: 在进行任何清理操作之前,请确保备份日志文件。
手动清理: 如有必要,手动删除旧的日志文件,谨慎操作以避免数据丢失。
在进行任何清理操作之前,务必深入了解潜在影响并采取预防措施。

文件形成的根本原因是有人恶意使用字典库登录服务器造成的,如果不解决这个问题,文件还会继续生成。解决的思路有两个方向:
一、只允许特定的IP访问
二、屏蔽恶意的访问IP
如果是会员,可以直接在SSH登录里面设置。
如果没有:
宝塔“安全”——“系统防火墙”,添加TCP端口22,来源指定IP,策略放行或者禁止按照需求设置即可。这个只是权宜之计,因为设置一个放行的IP,管理电脑IP地址可能是变化的,路由器重启之后会导致系统无法登录。如果设置禁止IP那么就太多了,可能几百上千个都不够。
完美的解决办法就是设置一个服务器IP和本地IP,如果本地IP变了,可以通过远程固定IP的服务器登录进行操作。

接下来就是如何查看恶意登录的IP地址:

使用 lastb 命令打开日志,然后只可以再次使用这个命令查看访问日志。

=============================================

以下是来自简书的解决方案:
原文地址:https://www.jianshu.com/p/67af866f6b6e
未验证,自己判断是否好用。

异常:发现/var/log/btmp文件逐渐增大,且文件占据空间较大。

1. 存在的意义

/var/log/btmp用于记录错误的登录尝试

2. 文件过大的原因

可能存在暴力破解,即使用密码字典登录ssh服务,此日志需使用lastb打开

3. 解决方法

(1)查看登录次数>100的IP

#获取高频登录的IP,怀疑为暴力破解的IP登录次数
lastb |awk '{print $3}' |awk '{++S[$NF]} END{for (a in S)print a,S[a]}' |awk '{if($2>100)print $0}' |sort -nrk2 >IP.list.stat.sort 
#获取高频登录的IP,怀疑为暴力破解的IP
lastb |awk '{print $3}' |awk '{++S[$NF]} END{for (a in S)print a,S[a]}' |awk '{if($2>100)print $0}' |sort -nrk2 |awk '{print $1}'>IP.list.sort 

(2)防火墙屏蔽单个恶意登录的IP

#封停单个IP的命令
iptables -l INPUT -s ***.***.***.*** -j DROP
#解封单个IP的命令
iptables -D INPUT -s ***.***.***.*** -j DROP
参数-I 是表示Insert(添加),-D表示Delete(删除);
后面跟的是规则么,INPUT表示入站;
***.***.***.*** 表示要封停的IP;
DROP表示放弃链接
例子:
iptables -I INPUT -s 110.97.35.36 -j DROP
#要添加IP段到封停列表中
iptables -I INPUT -s 110.97.35.0/24 -j DROP

添加完成后,用service iptables status可以查看iptables服务的当前状态。
(3)防火墙屏蔽大量恶意登录的IP
使用ipset命令。

测试ipset是否安装
ipset -v
若没安装
sudo yum install ipset #centos系统
sudo apt-get install ipset #Ubuntu、Debian或者mint系统

①创建IP集IPlimit,增加IP限制为10万条

ipset create IPlimit hash:net maxelem 100000

②为IP黑名单添加前缀参数

#awk '{print "add IPlimit "$0}' IP.list.sort > IP.list.blackIP
#cat IP.list.blackIP
add IPlimit 137.184.49.26
add IPlimit 159.65.25.202
add IPlimit 137.184.230.37
add IPlimit 206.189.237.181
add IPlimit 138.197.179.162
add IPlimit 139.162.189.28
add IPlimit 143.198.51.174
add IPlimit 164.92.87.43
add IPlimit 139.162.177.94
add IPlimit 172.104.230.225
add IPlimit 206.189.60.113
add IPlimit 137.184.224.69
add IPlimit 167.99.252.189
add IPlimit 164.92.134.129
add IPlimit 64.227.177.186
add IPlimit 157.230.116.8
add IPlimit 64.227.130.160
add IPlimit 157.245.100.88
add IPlimit 111.7.106.100
add IPlimit 111.7.106.101`

这些IP我抽查了几个,有来自英国、德国、美国、印度,甚至我国某些省市。

③ 使用ipset 命令加载这个文件到IP集

ipset restore -f IP.list.blackIP
ipset list IPlimit

Name: IPlimit
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 100000
Size in memory: 1656
References: 0
Number of entries: 20
Members:
111.7.106.100
138.197.179.162
164.92.87.43
172.104.230.225
139.162.177.94
137.184.49.26
137.184.224.69
157.230.116.8
137.184.230.37
206.189.60.113
167.99.252.189
111.7.106.101
64.227.177.186
64.227.130.160
206.189.237.181
159.65.25.202
164.92.134.129
143.198.51.174
157.245.100.88
139.162.189.28

④创建iptables规则来屏蔽IP集中的IP

iptables -I INPUT -m set --match-set IPlimit src -j DROP

⑤查看iptables防护墙的filter表是否添加成功

iptables -t filter -nL

此处的屏蔽仅仅是截止日前攻击过这台机器的IP。其实网络上有很多免费或收费的服务来提供blackIP的列表。比如免费的iblacklist.com。可以将列表这个下载下来,因格式的原因需要进行转换后屏蔽这些坏蛋,详情请参考如何在Linux下大量屏蔽恶意IP地址

⑥清理/var/log/btmp文件

cp /var/log/btmp /var/log/btmp.bak
echo > /var/log/btmp

补充知识:IP段

iptables只是三种ip段,

封110.0.0.0—110.255.255.255 ip段的方法是在源ip里输入,110.0.0.0/8;
封110.110.0.0—110.110.255.255 ip段的方法是在源ip里输入,110.110.0.0/16;
封110.110.110.0—110.110.110.255 ip段的方法是在源ip里输入,110.110.110.0/24;

补充知识:打开关闭防火墙

(1)加入开机自启动
chkconfig iptables on
(2)重启服务
service iptables restart



路过

雷人

握手

鲜花

鸡蛋

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2024 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 |网站地图
返回顶部