CentOS系统如何定期清理
导读:CentOS系统定期清理方法 一、清理临时文件 临时文件主要存储在/tmp、/var/tmp及用户主目录的.cache、.local/share/Trash目录中,定期清理可快速释放磁盘空间。 手动清理:使用rm命令删除目录下文件(谨慎操...
CentOS系统定期清理方法
一、清理临时文件
临时文件主要存储在/tmp
、/var/tmp
及用户主目录的.cache
、.local/share/Trash
目录中,定期清理可快速释放磁盘空间。
- 手动清理:使用
rm
命令删除目录下文件(谨慎操作,避免误删系统文件):sudo rm -rf /tmp/* /var/tmp/* # 清理系统临时目录 rm -rf ~/.cache/* ~/.local/share/Trash/* # 清理用户临时文件
- 工具清理:使用
systemd-tmpfiles
(CentOS 7及以上)根据配置规则自动清理,也可通过tmpwatch
工具删除指定时间未访问的文件:sudo systemd-tmpfiles --clean # 按系统配置清理 sudo yum install tmpwatch & & sudo tmpwatch 7d /tmp # 删除7天未访问的/tmp文件
- 定时任务:通过
cron
每天凌晨3点自动清理:sudo crontab -e # 添加以下内容 0 3 * * * rm -rf /tmp/* /var/tmp/* & & rm -rf ~/.cache/* ~/.local/share/Trash/*
二、清理日志文件
日志文件(如/var/log/messages
、/var/log/secure
)会随时间增长占用大量空间,可通过以下方式管理:
- 使用logrotate工具(推荐):自动轮转、压缩、删除旧日志。编辑配置文件(如
/etc/logrotate.d/messages_secure
):
测试配置是否正确:/var/log/messages /var/log/secure { daily # 每天轮转 rotate 7 # 保留7份旧日志 compress # 压缩旧日志 missingok # 日志丢失不报错 notifempty # 空日志不轮转 create 640 root adm # 新日志权限 }
sudo logrotate -f /etc/logrotate.conf
。 - 使用journalctl命令:针对systemd日志,删除指定时间前的日志:
sudo journalctl --vacuum-time=2weeks # 删除2周前的日志 sudo journalctl --rotate # 手动旋转日志
- 手动清理:直接删除旧日志文件(需确认不影响系统诊断):
sudo find /var/log -type f -name "*.log" -mtime +7 -exec rm -f { } \; # 删除7天前的.log文件
三、清理包管理器缓存
包管理器(yum/dnf)的缓存会占用/var/cache
空间,定期清理可释放资源:
- 清理所有缓存:
sudo yum clean all # CentOS 7及以下 sudo dnf clean all # CentOS 8及以上
- 仅清理元数据或包数据:
sudo yum clean metadata # 清理元数据(减少包查询时间) sudo yum clean packages # 清理下载的包文件
四、清理系统缓存
系统缓存(页面缓存、目录项缓存等)会占用内存,清理后可释放内存,但可能短暂影响性能(建议在系统负载低时执行):
sync &
&
echo 3 >
/proc/sys/vm/drop_caches # 清理页面缓存、目录项缓存、inode缓存
五、删除不必要软件包
卸载不再使用的软件包及其依赖,减少系统冗余:
sudo yum autoremove # CentOS 7及以下
sudo dnf autoremove # CentOS 8及以上
六、清理旧内核
旧内核会占用/boot
分区空间,保留当前使用的最新内核即可:
sudo package-cleanup --oldkernels --count=1 # 保留1个最新内核,删除其余旧内核
七、自动化清理脚本
将常用清理命令整合为脚本(如/usr/local/bin/cleanup.sh
),通过cron
定期执行:
#!/bin/bash
# 清理临时文件
rm -rf /tmp/* /var/tmp/*
# 清理日志
journalctl --vacuum-time=3d
# 清理包缓存
yum clean all
# 清理系统缓存
sync &
&
echo 3 >
/proc/sys/vm/drop_caches
赋予脚本执行权限:sudo chmod +x /usr/local/bin/cleanup.sh
。
添加cron
任务(每天凌晨2点执行):
sudo crontab -e
# 添加以下内容
0 2 * * * /usr/local/bin/cleanup.sh >
>
/var/log/cleanup.log 2>
&
1
注意事项
- 谨慎使用
rm -rf
:避免删除系统关键文件(如/etc
、/boot
目录下的文件)。 - 测试清理命令:首次执行前,可先预览将要删除的文件(如
find /tmp -type f -mtime +7
)。 - 备份重要数据:定期备份系统或重要文件,防止误操作导致数据丢失。
- 调整定时任务时间:根据系统使用场景,选择负载低的时段执行清理任务(如凌晨)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS系统如何定期清理
本文地址: https://pptw.com/jishu/732251.html