📖
mabutou's wiki
  • About
  • 🤖Linux
    • 常规日志ip统计
    • traefik 生成 htpasswd
    • 日志查询
      • 按时间筛选跨行日志
      • 文本搜索 Ripgrep
      • goaccess 解析日志文件
      • ripgrep 筛选指定时间范围日志
    • 根据端口号,找到对应进程
    • Centos 7
      • centos7 安装 MySQL 客户端
    • Ubuntu
      • 清理ubuntu磁盘空间
    • dpkg: warning: files list file for package 'x' missing
    • 转发本地代理到服务器
    • 50 Most Frequently Used UNIX
    • 僵尸进程
    • 查看大文件
    • install xrdp
    • locales error
    • OpenSSH Slow: Hanging at SSH2_MSG_SERVICE_ACCEPT received
    • shell 命令按次数输出v2访问日志的 ip 统计
    • ssh 端口转发脚本
    • shell proxy
    • firewall-cmd
    • mout webdav
    • du 命令
    • Unable to set locale
    • tar分卷压缩与解压缩
    • 合并目录下所有文件内容
    • rsync command
    • journal 日志大小限制
    • add swapfile
    • LVM manage
    • Linux logrotate
    • new user && group
    • Nginx 开启OCSP装订
    • 删除指定时间区间内的文件
    • 群晖初始化
    • ubuntu 内核升级脚本
    • curl 请求带有用户名和密码的 url
  • 🐬Front-end
    • 清理yarn/npm本地缓存
  • ❄️ K8S
    • 批量删除failed pod
    • 镜像批量打标签并推送
    • basic command
    • busybox 解析 pod ip
    • kubectl set node label
    • set pod's image version
    • k8s proxy
    • Force delete POD
  • 🐳Docker
    • 根据进程pid查看该进程所属的容器
    • docker pull 设置下载线程数
    • 查看数据卷目录
    • delete dangling images
    • install docker-compose
    • 按关键词停止容器
    • 限制&&清除容器日志
    • docker images 按大小排序镜像
    • 实时截取日志
    • 查询容器ip
    • 配置镜像加速
    • df 排除 多余文件系统
    • docker copy file from image to host && prune container
  • 🐮Rancher
    • 重置admin 密码
    • 卸载
  • 🐍Python
    • start a simple http_server
  • 🍎Mac
    • MacOS 浏览器播放音频没声音
    • mac 执行sed -i指令时,提示extra characters at the end of command
    • 创建 macOS U盘启动盘
    • Tmux 启动时 127 错误
    • Kill Apple Remote Desktop via ssh
    • hack wechat sqlite
    • 刷新 DNS
    • masscan 端口扫描
    • start apache_server
    • timemachine list and clean
    • dmg || .app 提示文件已损坏
    • 重启 Dock 栏
    • macOS(BSD system) 禁用 ssh 密码登录
  • 🖥️Windows
    • 命令行获取电脑的序列号
    • enable windows ping icmp
    • 关闭休眠模式
    • 卓越性能模式
  • ⌨️ Cheatsheet
    • VIM
    • Bash
    • Git
      • github init
      • Git 变更默认分支名
      • Git 大小写问题
    • Tmux
    • ffmpeg
  • Application
    • chrome 清除 dns && https 缓存
  • 正则表达式
    • basic
    • regular expression
  • Proxmox
    • stop pve
  • VMware
    • 虚拟机设置静态ip, Vmware 虚拟机配置全攻略 - 少数派
  • Hetzner
    • hz 单ip 独服 安装 proxmox 后网卡配置
    • hetzner_box
  • Oracle-Cloud-ARM
    • 修改引导卷大小
  • 镜像源
    • pip 清华源
    • ubuntu 阿里云镜像
    • centos 阿里云镜像
    • npm 淘宝镜像
由 GitBook 提供支持
在本页
  • 1. 删除大容量软件包
  • 2. 删除残余的配置文件
  • 3. 删除没有用的deb软件安装包
  • 4. 删除孤儿软件包
  • 5. 删除过时的软件包
  • 6. 清理日志文件

这有帮助吗?

  1. Linux
  2. Ubuntu

清理ubuntu磁盘空间

转载自 https://www.cnblogs.com/hsdchenliyang/archive/2018/02/24/8465653.html

ncdu工具来查看大容量目录和文件

sudo apt-get install ncdu

sudo ncdu /var/log

1. 删除大容量软件包

首先安装debian-goodies

sudo apt-get install debian-goodies

然后输入下面的命令

dpigs -H

输出结果

441.0M texlive-latex-extra-doc
230.1M valgrind-dbg
200.6M chromium-browser
171.4M google-chrome-stable
153.4M linux-image-extra-3.19.0-39-generic
153.4M linux-image-extra-3.19.0-37-generic
151.5M maltego
144.8M wine1.7-amd64
140.6M metasploit-framework
137.4M wine1.7-i386

命令默认只会显示前10个结果,可指定结果的个数,比如20个

dpigs -H --lines=20

2. 删除残余的配置文件

通常Debian/Ubuntu删除软件包可以用两条命令

sudo apt-get remove <package-name>

sudo apt-get purge <package-name>

remove将会删除软件包,但会保留配置文件.purge会将软件包以及配置文件都删除.

找出系统上哪些软件包留下了残余的配置文件

dpkg --list | grep "^rc"

其中第一栏的rc表示软件包已经删除(Remove),但配置文件(Config-file)还在. 现在提取这些软件包的名称.

dpkg --list | grep "^rc" | cut -d " " -f 3

删除这些软件包

dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
(Reading database ... 64538 files and directories currently installed.)
Removing libapt-inst1.4:amd64 (0.8.16~exp12ubuntu10.11) ...
Purging configuration files for libapt-inst1.4:amd64 (0.8.16~exp12ubuntu10.11) ...
Removing libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Purging configuration files for libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...

如果你只想删除某个软件包的配置文件,那么可以使用下面的命令

sudo dpkg --purge <package-name>

3. 删除没有用的deb软件安装包

通常我们用sudo apt-get install 命令安装软件包后,apt-get下载的deb安装包会保留在系统上.所以如果你经常安装软件,那么这些deb安装包会占据大量的空间.这些安装包在/var/cache/apt/archives目录下。在软件安装完成后,这些deb安装包就没什么用了。对于硬盘容量有限的服务器来说apt-get clean命令可以腾出很多空间。你可以输入下面的命令来查看/var/chace/apt/archives目录下deb安装包的总大小

du -sh /var/cache/apt/archives

要删除这些deb包,只需要运行下面两个命令就行了.

sudo apt-get clean
sudo apt-get autoclean

4. 删除孤儿软件包

有时候,你用apt-get安装一个软件包时会自动安装其他的依赖.当你删除掉这个软件包时,这些依赖也就没有用处了.这些没有用的依赖包叫做孤儿软件包,可以用下面的命令删除

sudo apt-get autoremove

不过apt-get autoremove只会删除经apt-get自动安装的依赖包,而你自己手动安装的依赖包则不会被删除,这时我们可以用deborphan来彻底删除.

sudo apt-get install deborphan

列出孤儿软件包

deborphan

将它们删除

deborphan | xargs sudo apt-get purge -y

5. 删除过时的软件包

所谓过时(obsolete)的软件包是指/etc/apt/sources.list源文件中没有任何一个软件源提供这个软件的deb安装包.也就是说这个软件包在软件源里找不到了,不被支持了.这可能是因为下面几个原因:

  • 上游开发者不维护这个软件,又没有人来接管这个软件的开发.所以Debian/Ubuntu的软件包维护人员决定将这个软件从软件源中删除.

  • 这个软件成了孤儿,同时用户很少.所以它就从软件源里消失了.

  • 这个软件有了一个新的名字,维护人员给它起了一个新的名字并保留旧软件包.

因为这些过时的软件不会有安全更新了,而且搞不好会在软件升级过程中引来麻烦,所以我们需要将它们删除.首先找出哪些软件包是过时的

sudo aptitude search ?obsolete

我的输出结果

i linux-image-3.2.0-29-generic - Linux kernel image for version 3.2.0 on 64

将它删除

sudo apt-get purge linux-image-3.2.0-29-generic

你也可以使用下面的命令将所有过时的软件包一下清除

sudo  aptitude purge ~o

不过需要注意的是,有些软件包虽然在软件源里找不到,但它并不是过时的软件包.比如你自己下载安装的ubuntu-tweak.ubuntu-tweak需要你从官网下载deb安装包,但不提供软件源.用上面这条命令会将这类软件包也删除.所以我建议使用apt-get purge,自己选择需要删除的软件包.

6. 清理日志文件

日志文件会变得越来越大,我们可以用ncdu工具来查看大日志文件.

sudo apt-get install ncdu

sudo ncdu /var/log

从上图可以发现,shadowsocks.log占用了24.5MiB的硬盘空间,我们可以用下面的命令来清空这个日志文件的内容.

sudo dd if=/dev/null of=/var/log/shadowsocks.log
上一页Ubuntu下一页dpkg: warning: files list file for package 'x' missing

最后更新于3年前

这有帮助吗?

Debian/Ubuntu删除残余配置文件
Debian/Ubuntu删除残余配置文件
Linux清理硬盘空间
Linux清理硬盘空间
🤖