Popular blog tags

Ubuntu命令大全:磁盘空间清理

Published

磁盘清理有2个工具:

命令行

ncdu软件

Table of Content

查看Linux系统环境

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

 

Linux磁盘空间100% 查找磁盘空间并删除大文件

 

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