注:命令只是模板,根据需要以及不同系统自行更改
1.查看磁盘使用情况
df -h
此命令将显示所有已安装文件系统的磁盘使用情况。您可以根据需要确定哪些文件系统占用了最多的磁盘空间。
2.查找大文件和目录
du -sh /*
此命令将列出根目录下的所有文件和目录的大小,并以易于阅读的格式显示它们所占用的磁盘空间。您可以进一步缩小搜索范围,例如,在/home目录中执行此命令,以查找该目录中的大文件和目录。
3.使用du命令检查文件夹大小
使用du命令可以检查每个文件夹的大小,找出占用磁盘空间较大的文件夹。例如,使用以下命令将/var目录下所有文件夹按大小排序:
du -h /var | sort -rh | head -n 10
该命令将显示/var目录下最大的前10个文件夹。
4.检查日志文件大小
在Linux系统中,日志文件可能会非常大,占用大量磁盘空间。您可以使用ls命令和grep命令来查看日志文件的大小并找出最大的几个文件。例如,使用以下命令列出/var/log目录下最大的10个文件:
ls -lSr /var/log | grep ^- | tail | awk '{print $5, $9}'
该命令将显示/var/log目录下最大的前10个文件名和大小。
5.删除临时文件和目录
rm -rf /tmp/*
rm -rf /var/tmp/*
这将删除/tmp和/var/tmp目录中的所有文件。请注意,在删除文件之前,请确保您不需要这些文件中包含的数据,例如应用程序或系统进程正在使用的临时文件。
6.清空系统日志
journalctl --rotate
journalctl --vacuum-time=1s
第一个命令将旧的系统日志归档并开始记录新的日志。第二个命令将清除早于1秒钟的日志条目。您可以根据需要更改--vacuum-time选项的值来调整要保留的日志时间。
7.手动清理日志文件
如果您需要手动清理日志文件,请使用以下命令删除/var/log目录下的所有日志文件:
find /var/log/ -type f -name "*.log" -delete
find /var/lib/docker/containers/ -type f -name "*.log" -delete
在删除日志文件之前,请确保您不需要这些文件中包含的数据,例如调试信息或错误消息。
8.清空已打开的日志文件
在某些情况下,已打开并写入的日志文件可能无法直接删除。在这种情况下,您可以使用以下命令将文件截断为零大小,并释放由该文件占用的磁盘空间:
sh -c 'truncate -s 0 /var/log/'
其中,是要截断的日志文件名。例如,清空syslog文件的命令如下:
sh -c 'truncate -s 0 /var/log/syslog'
9.清理缓存
sync && sysctl -w vm.drop_caches=3
该命令将使Linux内核释放所有未使用的缓存页,并回收未使用的内存。请注意,这会导致系统性能下降,因为它会强制Linux重新加载从磁盘读取的文件。
10.删除不使用的软件包
sudo yum autoremove
apt-get autoremove
这将删除您已卸载但未自动删除的软件包。
11.删除无用的内核
package-cleanup --oldkernels
12.删除未使用的依赖项
package-cleanup --leaves
13.清理错误的yum缓存
yum clean all
14.清除APT缓存
apt-get clean
apt-get autoclean
15.删除旧的备份文件
find /path/to/backup/folder -type f -mtime +30 -delete
该命令将删除早于30天的所有备份文件。您可以根据需要更改-mtime选项的值来调整备份保留时间。
总之,在清理垃圾时,请小心谨慎,并确保您不会删除重要的数据。另外,建议在执行任何操作之前备份数据以防不测。
16.docker清理
删除未使用的镜像
docker image prune
这个命令将删除未被任何容器使用的所有镜像。如果您想删除特定的镜像,请使用 docker rmi 命令。
删除未运行的容器
docker container prune
这个命令将删除未在运行中的所有容器。如果您想删除特定的容器,请使用 docker rm 命令。
删除未使用的卷
docker volume prune
这个命令将删除未被任何容器使用的所有卷。如果您想删除特定的卷,请使用 docker volume rm 命令。
删除未使用的网络
docker network prune
这个命令将删除未被任何容器使用的所有网络。如果您想删除特定的网络,请使用 docker network rm 命令。
停止运行中的容器:
docker stop
这个命令将停止正在运行的 Docker 容器。如果您不确定容器是否在运行,请先使用 docker ps 命令确认容器状态。
卸载容器:
docker rm
这个命令将删除指定的 Docker 容器。请注意,这将永久删除容器及其关联数据。
如果您需要卸载多个容器,则可以使用以下命令:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
这将分别停止和删除所有 Docker 容器。
批量清理 Docker,可以使用以下命令:
docker system prune -a --volumes
这个命令将删除所有未被任何容器使用的、已经停止的容器和未被使用的镜像、网络和卷。添加 -a 标志将从系统中删除所有镜像(包括被使用的),而 --volumes 标志将删除未使用的卷。
17.查看Docker容器内存储的使用情
进入容器
docker exec -it/bin/bash
其中,是要进入的容器ID。该命令将打开一个终端会话,并在容器内启动Bash shell。
查看磁盘使用情况
df -h
此命令将显示容器中所有已安装文件系统的磁盘使用情况。您可以根据需要确定哪些文件系统占用了最多的磁盘空间。
查找大文件和目录
sudo du -sh /*
此命令将列出根目录下的所有文件和目录的大小,并以易于阅读的格式显示它们所占用的磁盘空间。您可以进一步缩小搜索范围,例如,在/home目录中执行此命令,以查找该目录中的大文件和目录。
退出容器
exit
该命令将关闭容器终端会话并返回主机终端。
18.要查看在 CentOS 中安装的软件占用了多少磁盘空间,您可以使用以下命令:
yum list installed | awk '{print $1}' | xargs rpm -ql | awk '{print "size: " (sum += $2) / (1024*1024) " MB\t" $0 } END { print "Total size: " sum / (1024*1024) " MB" }'
这个命令会列出所有已安装的软件包及其文件,并计算它们所占用的总磁盘空间。
如果您只想查看单个软件包所占用的空间,请使用以下命令:
rpm -ql --queryformat '%{size} %{name}\n' | awk '{ sum += $1 } END { printf("Size of %s: %.2f MB\n"), $2, sum/1024/1024 }'
将
19.删除旧的内核
在 CentOS 中,每次升级内核时,旧的内核文件都会保留在系统中。如果您确定当前系统正常运行,并且不需要回滚到旧的内核版本,则可以删除旧的内核以释放磁盘空间。
通过以下命令查看系统中已经安装的所有内核:
rpm -q kernel
然后,使用以下命令删除系统中不需要的旧内核:
sudo yum remove
替换
今天发现wget文件一直失败,第一反应是网络不通,但是根据报错情况显示储存不足
df -h 查看磁盘空间使用情况
果然,/dev/vda1磁盘空间已经使用了100%
du -sh *命令来查看当前目录下各个文件或目录的大小,当前我是在root目录,我一般下载文件也是在root目录
所以优先删除掉root目录下无用文件
经过一番操作,系统多了2%的储存
但是仍然占用较多,使用du命令可以检查每个文件夹的大小,根据上图我决定查看var目录下文件大小,列出前十
du -h /var | sort -rh | head -n 10
docker占用过多,查看docker
docker ps -a
删除无用的docker,先stop掉再删除
docker stop
docker rm
删除docker之后我觉得很多日志文件也不会去看,决定删除日志文件,先查看日志文件大
ls -lSr /var/log | grep ^- | tail | awk '{print $5, $9}'
命令将显示/var/log目录下最大的前10个文件名和大小
这里的单位是字节,最大的大概有九十多兆,其实无所谓
删除日志文件:
find /var/log/ -type f -name "*.log" -delete
删除docker内未被使用的镜像、网络和卷
docker system prune -a --volumes
最终扩容12G
到这里已经满足我的使用需求了,要求高的可以继续折腾
注:在清理临时文件、系统日志和缓存时,请小心谨慎,确保您不会删除重要的数据。
另外,建议在执行任何操作之前备份数据以防不测。