磁盘清理有2个工具:
命令行
ncdu软件
Table of Contents
Table of Content
Ubuntu磁盘空间清理(通用)
sudo apt-get autoremove
1.Ubuntu 查看磁盘空间大小命令
df -hl
Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息.
显示结果为:
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
/dev/hda6 4.9G 2.2G 2.5G 47% /home
/dev/hda5 9.7G 2.9G 6.4G 31% /opt
none 1009M 0 1009M 0% /dev/shm
/dev/hda3 9.7G 7.2G 2.1G 78% /usr/local
/dev/hdb2 75G 75G 0 100% /
/dev/hdb2 75G 75G 0 100% /
上面的输出表示的意思为:
HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/)
查看目录占用空间
#du -hs
#du -hs 目录名
Ubuntu磁盘空间清理(专用)
step 1:首先确定是哪个文件夹占用较多
du -h / --max-depth=1 | sort -hr | head -n 10
or
cd /
du -sh *
output
50G /
28G /var
6.0G /dfs
4.0G /opt
3.0G /root
2.3G /usr
148M /lib
39M /log
30M /etc
29M /boot
step 2:继续往下层目录找,定位到/var目录占用超过50%(磁盘总量50G)
du -h /var --max-depth=1 | sort -hr | head -n 10
output
28G /var
24G /var/lib
3.8G /var/log
371M /var/cache
删除指定目录
rm -rf test/
ubuntu找出大文件并删除
# du -t 100M
output
# du -t 100M
505472 ./.local/share/NuGet/v3-cache/1ca707a4d90792ce8e42453d4e350886a0fdaa4d$ps:_api.nuget.org_v3_index.json
509408 ./.local/share/NuGet/v3-cache
509412 ./.local/share/NuGet
509420 ./.local/share
509424 ./.local
172940 ./.nuget/packages/system.runtime
224236 ./.nuget/packages/skiasharp/1.68.1.1
224240 ./.nuget/packages/skiasharp
2670532 ./.nuget/packages
2670544 ./.nuget
181412 ./dotnet_install/dotnet_packages
362848 ./dotnet_install
Free disk space
1.找出 /var/tmp 目录下 超过10M的大文件并删除
find /var/tmp -type f -size +10000k -delete
2.Linux 清理 /var/log/ 日志
包含系统自身生成的日志和应用软件生成的日志两部分;
/var/log
# du -h /var/log --max-depth=1 | sort -hr | head -n 10
633M /var/log
158M /var/log/mongodb
17M /var/log/journal
628K /var/log/letsencrypt
456K /var/log/redis
100K /var/log/apt
48K /var/log/postgresql
20K /var/log/nginx
12K /var/log/elasticsearch
8.0K /var/log/installer
step 1:用journalctl --disk-usage 命令查看/var/log/journal系统产生的日志
里面存在de* 和 syslog* 超过1G的日志文件
# journalctl --disk-usage
Archived and active journals take up 2.4G in the file system.
发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达8-128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值
step 2:用journalctl --vacuum-size=10M命令将其清理
#journalctl --vacuum-size=10M
Output
journalctl --vacuum-size=10M
Vacuuming done, freed 0B of archived journals from /var/log/journal.
Deleted archived journal /var/log/journal/9371d6f120e047adb899dcdeab12e0cb/system@b05abb17062a4361938a0c85bb1ba067-0000000000383bc0-0005b09b9ca2ef9b.journal (104.0M).
...
Vacuuming done, freed 2.3G of archived journals from /var/log/journal/9371d6f120e047adb899dcdeab12e0cb.
用journalctl --vacuum-size=10M命令将其清理之后,腾出了2.7G的空间。用df命令一查,/根分区果然宽敞了很多。
# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 472776 0 472776 0% /dev
tmpfs 100876 700 100176 1% /run
/dev/vda1 25746000 8297348 16121616 34% /
tmpfs 504360 0 504360 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 504360 0 504360 0% /sys/fs/cgroup
tmpfs 100872 4 100868 1% /run/user/0
清理后
# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 472776 0 472776 0% /dev
tmpfs 100876 700 100176 1% /run
/dev/vda1 25746000 5872448 18546516 25% /
tmpfs 504360 0 504360 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 504360 0 504360 0% /sys/fs/cgroup
tmpfs 100872 4 100868 1% /run/user/0
3.Linux 清理 /root/* 日志
包含隐藏目录和可见目录两部分
# du -h /root --max-depth=1 | sort -hr | head -n 10
3.2G /root
2.7G /root/.nuget
289M /root/.local
222M /root/nopCommerce-release-4.60.3
1.2M /root/.dotnet
776K /root/.templateengine
64K /root/.cache
24K /root/.aspnet
20K /root/snap
16K /root/.cloudflared
clean /root/*
这个只能删除可见目录,隐藏目录删不掉
cd /root
rm -rf *
free 2G
那就直接进入隐藏目录,继续删
cd root/.nuget
rm rf *
free 2.7G
3.树莓派 磁盘空间清理工具 - ncdu
apt install ncdu
ncdu
press q or ctrl+c to quit
clean /var/log/elasticsearch
cd /var/log/elasticsearch
rm *
free 2G disk
frp
/usr/local/frp/frps.log
backups
/home/homeassistant/backups
free 2G
4. remove files in in /var/cache/apt/archives
When running sudo apt full-upgrade, it will show how much data will be downloaded and how much space it will take up on the SD card. It’s worth checking with df -h that you have enough free disk space, as unfortunately apt will not do this for you. Also be aware that downloaded package files (.deb files) are kept in /var/cache/apt/archives. You can remove these in order to free up space with sudo apt clean (sudo apt-get clean in older releases of apt).
df -h
sudo apt-get clean
root@iZbp18j0fr5xhywnh03waxZ:~/dotnet_install# df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 3.0M 392M 1% /run
/dev/vda1 40G 28G 9.6G 75% /
tmpfs 2.0G 16K 2.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 395M 0 395M 0% /run/user/0
/dev/loop4 62M 62M 0 100% /snap/core20/1328
/dev/loop5 44M 44M 0 100% /snap/certbot/1788
/dev/loop6 44M 44M 0 100% /snap/snapd/14978
/dev/loop1 62M 62M 0 100% /snap/core20/1361
/dev/loop2 44M 44M 0 100% /snap/certbot/1842
root@iZbp18j0fr5xhywnh03waxZ:~/dotnet_install# sudo apt-get clean
root@iZbp18j0fr5xhywnh03waxZ:~/dotnet_install# df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 3.0M 392M 1% /run
/dev/vda1 40G 28G 11G 73% /
tmpfs 2.0G 16K 2.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 395M 0 395M 0% /run/user/0
/dev/loop4 62M 62M 0 100% /snap/core20/1328
/dev/loop5 44M 44M 0 100% /snap/certbot/1788
/dev/loop6 44M 44M 0 100% /snap/snapd/14978
4.raspberry pi(debian 11)
root
cd root
rm rf *
clean /var/log 大的日志文件
cd /var/log no
rm rf *
/home/homeassistant20221103/.homeassistant 大的ha日志文件和backup下面的文件
/home/homeassistant20221103
root@raspberrypi:~# du -h / --max-depth=1 | sort -hr | head -n 10
root@raspberrypi:~# du -h / --max-depth=1 | sort -hr | head -n 10
du: 无法访问 '/proc/15686/task/15686/fd/3': 没有那个文件或目录
du: 无法访问 '/proc/15686/task/15686/fdinfo/3': 没有那个文件或目录
du: 无法访问 '/proc/15686/fd/4': 没有那个文件或目录
du: 无法访问 '/proc/15686/fdinfo/4': 没有那个文件或目录
du: 无法访问 '/proc/15723': 没有那个文件或目录
du: 无法访问 '/proc/15727': 没有那个文件或目录
28G /
12G /var
6.7G /home
4.3G /usr
1.9G /srv
1.3G /opt
1.2G /root
762M /snap
200M /lib
23M /boot
root@raspberrypi:~# du -h /var --max-depth=1 | sort -hr | head -n 10
root@raspberrypi:~# du -h /var --max-depth=1 | sort -hr | head -n 10
757M /var
576M /var/lib
77M /var/cache
4.5M /var/backups
44K /var/spool
36K /var/snap
16K /var/mail
12K /var/www
12K /var/tmp
4.0K /var/opt
root@raspberrypi:~# du -h /home --max-depth=1 | sort -hr | head -n 10
6.7G /home
2.5G /home/homeassistant20221103
1.9G /home/homeassistant20221102
1.5G /home/homeassistant20230103
798M /home/homeassistant
137M /home/pi
root@raspberrypi:~# du -h /home/homeassistant20221102/.homeassistant --max-depth=1 | sort -hr | head -n 10
103M /home/homeassistant20221102/.homeassistant
4.0M /home/homeassistant20221102/.homeassistant/.storage
2.4M /home/homeassistant20221102/.homeassistant/.git
1.8M /home/homeassistant20221102/.homeassistant/custom_components
32K /home/homeassistant20221102/.homeassistant/blueprints
4.0K /home/homeassistant20221102/.homeassistant/tts
4.0K /home/homeassistant20221102/.homeassistant/deps
4.0K /home/homeassistant20221102/.homeassistant/.cloud
root@raspberrypi:~# du -h /home/homeassistant20221102/ --max-depth=1 | sort -hr | head -n 10
1.9G /home/homeassistant20221102/
1.2G /home/homeassistant20221102/.rustup
425M /home/homeassistant20221102/.cargo
141M /home/homeassistant20221102/.cache
103M /home/homeassistant20221102/.homeassistant
16K /home/homeassistant20221102/.local
root@raspberrypi:~# cd ^C
root@raspberrypi:~# cd /home/homeassistant20221102/.homeassistant
root@raspberrypi:/home/homeassistant20221102/.homeassistant# cd .rustup
-bash: cd: .rustup: 没有那个文件或目录
root@raspberrypi:/home/homeassistant20221102/.homeassistant# cd ..
root@raspberrypi:/home/homeassistant20221102# rm -rf .rustup
Docker日志文件占用了大量的空间
删除日志文件中的所有内容
truncate -s 0 /var/lib/docker/containers/*/*-json.log
https://baeldung.xiaocaicai.com/ops-docker-logs/
find /var/lib/docker/containers/ -name *-json.log -exec ls -lh {} \;
-rw-r----- 1 root root 0 May 31 18:00 /var/lib/docker/containers/04256a787759d1a5e0f4ba96ae4fe1b344732afd6cfeff084a0f0701e6a94f35/04256a787759d1a5e0f4ba96ae4fe1b344732afd6cfeff084a0f0701e6a94f35-json.log
-rw-r----- 1 root root 409M Nov 27 23:26 /var/lib/docker/containers/27d9c2e96511621e52120f14978fb27107fc9af4000ebc19afe1e72b8b01bf96/27d9c2e96511621e52120f14978fb27107fc9af4000ebc19afe1e72b8b01bf96-json.log
-rw-r----- 1 root root 90 Nov 24 02:33 /var/lib/docker/containers/437ff8679ca786430e8096b3c024e0d9a7b57e96bd85fd9e4ab3ca3b10f5ffe5/437ff8679ca786430e8096b3c024e0d9a7b57e96bd85fd9e4ab3ca3b10f5ffe5-json.log
-rw-r----- 1 root root 25K Nov 27 13:24 /var/lib/docker/containers/4c8a84170a3a5d75bbe4470d9b72fc5c9095bf78e978d5a1e2ad9041a6ea2efe/4c8a84170a3a5d75bbe4470d9b72fc5c9095bf78e978d5a1e2ad9041a6ea2efe-json.log
Docker容器日志清理
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
https://blog.csdn.net/yjk13703623757/article/details/80283729
2.Ubuntu控制台输出结果到文本
ls>t.txt
python test.py | tee output.txt
3.How do I provide a username and password to wget?
Syntax
The syntax is:
wget options url
4.查看进程和进程端口号
netstat -ntlp
显示结果如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 27555/sshd
tcp6 0 0 :::22 :::* LISTEN 27555/sshd
5.服务管理
查看启用状态,用于启动失败排错,显示启动错误详细信息
journalctl -e -u n.service
ubuntu中搜索文件或文件夹的方法
find / -name +文件名
find是在指定的目录下遍历查找,如果目录使用 / 则表示在所有目录下查找,find方式查找文件消耗资源比较大,速度也慢一点。
~# find / -name 6273713-03c88b78cd55ae49.png
sudo apt-get autoremove
更新系统
# 更新本地报数据库
sudo apt update
# 更新所有已安装的包(也可以使用 full-upgrade)
sudo apt upgrade
# 自动移除不需要的包
sudo apt autoremove
常用的清理命令:
命令 | 描述 |
---|---|
apt autoclean | 将已删除软件包的.deb安装文件从硬盘中删除 |
apt clean | 同上,但会把已安装的软件包的安装包也删除掉 |
apt autoremove | 删除为了满足其他软件包的依赖而安装,但现在不再需要的软件包 |
apt remove [软件包名] | 删除已安装的软件包(保留配置文件) |
apt --purge remove [软件包名] | 删除已安装包(不保留配置文件) |
Linux系统环境(Ubuntu)
[root@nginx01 ~]# cat /etc/redhat-release #==》系统版本
CentOS release 6.7 (Final)
[root@nginx01 ~]# uname –r #==》内核版本
2.6.32-573.el6.x86_64
[root@nginx01 ~]# uname -m #==》系统架构
x86_64
[root@nginx01 ~]# echo $LANG #==》系统字符集
en_US.UTF-8
[root@nginx01 conf]# nginx -V #==》Nginx版本
nginx version: nginx/1.14.0 (Ubuntu)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-DUghaW/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
Ubuntu中,snap、apt和apt-get的区别
apt-get
apt
apt与apt-get的区别
实际上,apt和apt-get没有什么区别,只是apt比apt-get更高级一点
apt支持进度条显示
....
不管从哪方面说,apt都是要优于apt-get的,我个人是更愿意使用apt
Snap
Snap是Ubuntu的一个软件包管理系统
Snap库中包含的软件与apt库中包含的软件并不完全一致。Snap主要包含高级、独立和最新版本的软件,而apt则包含更多的软件包,包括一些稳定但版本较老的软件
依赖关系:Snap是通过将应用程序及其依赖项捆绑到一个独立的Snap软件包中来解决依赖问题,而apt需要处理软件之间的依赖关系,并确保它们都可用
更新机制:Snap提供了自动更新机制,应用程序的更新会自动下载和部署,但可以选择要更新的版本。而在apt中,用户需要手动执行apt-get update和apt-get upgrade来更新软件包
安全性:Snap是在沙箱中运行的,如果某个应用程序发生故障,只会影响该应用程序,不会影响其他程序或系统。相反,通过apt安装的软件包可能会对整个操作系统造成影响
https://www.cnblogs.com/zengzuo613/p/18434300