记一次部署的项目环境被无故删除

本文详细记录了一次主机环境中编译环境被无故删除的排查过程,发现原因是RedHat 7系统对/var/tmp目录的自动清理机制。通过检查系统日志、磁盘挂载和配置文件,确定了systemd-tmpfiles工具在每天清理未使用文件。解决方案是调整系统配置,避免重要文件被误删。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

据项目同事反馈,主机项目部署的编译环境被无故删除,且主机root密码未对外公开,请求协助排查。对于这种情况大家的第一反应是被手残党误删,并且在邮件中明确指出,抓到剁手。。。。。对于这种情况,建议主机建立回收站机制。废话不多说,直接上干货。当前系统

Red Hat  7 

首先,查看系统日志/var/log/message

 根据日志中内容,可以看出对临时文件的清理是每天一次,具体清除了什么文件,没有垃圾回收机制,也不得知。

接下来,查看下磁盘情况占用情况以及挂载情况,不看不知道,一看吓一跳。同一块盘,挂在了两个目录,这没什么问题,重点是在挂载到临时目录/var/tmp目录上面,经测试,对data目录操作会同步/var/tmp。猜想这里是临时文件的自动清理机制引发的无故删除了项目部署的内容。 

知识点:系统对临时目录的清理机制是:

/tmp目录自动清理10天未使用的文件;

/var/tmp目录自动清理30天未使用的文件

接着向下延伸排查,这种机制的配置文件在哪里,是什么情况下会触发这种机制,大概多长时间清理一次,不过根据messages日志中体现的是每天清理一次,找到配置的证据。

首先,找到了/var/tmp目录的配置文件;/usr/lib/tmpfiles.d/tmp.conf

接着排查什么多长时间会触发这种自动清理机制:接着找每天更新的系统日志文件:/var/log/boot.log,翻译说是启动了什么玩意和清理钩,清理钩?思路有了,继续百度。

/usr/lib/systemd/system系统启动目录中查找tmp相关的文件 

很刺激,一个一个研究。clean相关的首当其冲

systemd-tmpfiles-clean.service 

systemd-tmpfiles-clean.timer,好了,问题得以闭环了。接下来我只需要知道这几个文件的详解以及相关内容。再验证下猜想,此次协查也就闭环了。

知识点:

在Red Hat Enterprise Linux 7和更高版本中,包含了一个称为systemd-tmpfiles的新工具,该工具提供了一种结构化且可配置的方法来管理临时目录和文件。

systemctl status  systemd-tmpfiles-*启动服务的命令

启动systemd-tmpfiles-setup服务单元时,它将运行systemd-tmpfiles –create –remove命令,该命令从以下位置检查配置文件:

/usr/lib/tmpfiles.d/.conf。    --此系统只有这个配置文件

/run/tmpfiles.d/.conf

/etc/tmpfiles.d/*.conf

如果上述配置文件中有标记为删除的文件和目录,则会将其删除,对于标记为创建的文件和目录,必要时使用正确的权限创建它们。使用Systemd计时器清除临时文件。

一个名为systemd-tmpfiles-clean.timer的systemd计时器单元会按固定的时间间隔触发systemd-tmpfiles-clean.service,然后执行systemd-tmpfiles -clean命令。

如果进行更改,请确保重新加载服务:(好像不重新加载也不影响)

systemctl daemon-reload

systemctl enable --now systemd-tmpfiles-clean.timer

验证猜想;

之前对/var/tmp的清理机制设置是
开机15min或者24小时清理/var/tmp目录下30d未使用的文件
现在设置开机15min或者24小时清理/var/tmp目录下1m未使用的文件
重置配置,重启了机器,看到了前一天创建的目录被删除,且messages系统日志信息中打印了

好了,协查完毕。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值