服务器磁盘清理是确保系统正常运行和提高性能的重要步骤,以下是详细的操作步骤:
一、检查磁盘使用情况
1、使用df -h
命令:查看服务器硬盘的使用情况,确定哪些分区占用了较多空间。
df -h
2、使用du -a | sort -rn | head -5
命令:查找当前目录下占用空间最大的文件或目录。
du -a | sort -rn | head -5
二、删除大文件和无用文件
1、查找并删除大文件:使用find
命令查找大于100M的文件,并根据需要删除。
find / -type f -size +100M -exec ls -lh {} \; # 例如删除某个大文件 rm -rf /path/to/largefile
2、删除临时文件:定期清理临时文件夹中的文件。
sudo rm -rf /tmp/
3、删除旧日志文件:查找并删除旧的日志文件,特别是那些超过一定天数的日志。
find /var/log -name "*.log" -mtime +30 -exec rm -f {} \;
三、优化日志文件
1、设置日志保留策略:通过修改配置文件,限制日志文件的大小和保存时间。
echo 'expire_logs_days = 30' >> /etc/mysql/my.cnf systemctl restart mysqld
2、清理MySQL binlog:动态修改binlog过期时间,以自动删除旧的二进制日志文件。
SET GLOBAL binlog_expire_logs_seconds = 604800;
四、清理Docker数据
1、删除未使用的Docker镜像、容器和卷:使用docker system prune
命令清理Docker资源。
docker image prune -a docker container prune docker volume prune
五、其他清理方法
1、压缩和归档文件:对于长期不访问的文件,可以将其压缩并归档到单独的文件中。
tar -czvf archive.tar.gz /path/to/directory gzip /path/to/file
2、卸载无用的软件和应用程序:删除不再需要的软件包。
sudo apt-get remove package-name sudo yum remove package-name
六、终极篇:编写脚本自动化清理
可以编写一个脚本,定期执行上述清理操作,以保持磁盘空间的持续管理。
#!/bin/bash LOG_DIR="/var/log" DOCKER_CLEANUP() { docker system prune -af } FIND_AND_DELETE() { find $1 -type f -name "*.log" -mtime +30 -exec rm -f {} \; } DOCKER_CLEANUP FIND_AND_DELETE $LOG_DIR
保存为cleanup.sh
,然后运行:
chmod +x cleanup.sh ./cleanup.sh
相关问题与解答
问题1:如何避免误删重要文件?
答:在执行删除操作前,建议备份重要文件,并确认要删除的文件确实是不需要的,可以使用lsof
命令检查文件是否在使用中,以避免误删正在使用的文件。
问题2:为什么删除大文件后磁盘空间没有立即释放?
答:有时删除大文件后,内存占用仍然很高,这是因为某些进程仍在使用这些文件,可以使用lsof | grep deleted
命令找到这些进程,并用kill -9
命令终止它们,以释放内存。
各位小伙伴们,我刚刚为大家分享了有关“服务器怎么清理磁盘”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/53263.html<