如何清理不必要的文件


19

请给我建议我可以清理的所有不需要的文件,以使所有内容恢复到正常状态(临时)。(即任何日志或档案库或其他内容)。我的var / log只有40MB,而主目录只有3GB的空间(所以我认为这不是问题)。除此之外,我还可以清理空间。

[user@host]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_inamivm-lv_root
                       18G   17G     0 100% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             485M   71M  389M  16% /boot

我在debian机器上。

UPDATE1:

输出 cd /; du -sxh *

6.1M    bin
61M     boot
156K    dev
22M        etc
3.3G    home
306M    lib
18M     lib64
16K     lost+found
4.0K    media
4.0K    mnt
408K    opt
du: cannot access `proc/18605/task/18605/fd/4': No such file or directory
du: cannot access `proc/18605/task/18605/fdinfo/4': No such file or directory
du: cannot access `proc/18605/fd/4': No such file or directory
du: cannot access `proc/18605/fdinfo/4': No such file or directory
0       proc
208K    root
9.7M    sbin
0       selinux
4.0K    srv
0       sys
8.0K    tmp
536M    usr
187M    var

更新2

输出 ls -la /

dr-xr-xr-x.  22 root root  4096 Aug  7 08:42 .
dr-xr-xr-x.  22 root root  4096 Aug  7 08:42 ..
-rw-r--r--.   1 root root     0 Aug  7 08:42 .autofsck
dr-xr-xr-x.   2 root root  4096 Mar 28 16:53 bin
dr-xr-xr-x.   5 root root  1024 Mar 28 16:54 boot
drwxr-xr-x.  16 root root  3580 Sep  9 03:13 dev
drwxr-xr-x.  69 root root  4096 Aug 23 09:19 etc
drwxr-xr-x.   9 root root  4096 Jun 29 16:10 home
dr-xr-xr-x.   8 root root  4096 Mar  7  2012 lib
dr-xr-xr-x.   9 root root 12288 Mar 28 16:53 lib64
drwx------.   2 root root 16384 Mar  7  2012 lost+found
drwxr-xr-x.   2 root root  4096 Sep 23  2011 media
drwxr-xr-x.   2 root root  4096 Sep 23  2011 mnt
drwxr-xr-x.   3 root root  4096 Mar  7  2012 opt
dr-xr-xr-x. 355 root root     0 Aug  7 08:42 proc
dr-xr-x---.   5 root root  4096 Aug 17 18:27 root
dr-xr-xr-x.   2 root root  4096 May  2 09:13 sbin
drwxr-xr-x.   7 root root     0 Aug  7 08:42 selinux
drwxr-xr-x.   2 root root  4096 Sep 23  2011 srv
drwxr-xr-x.  13 root root     0 Aug  7 08:42 sys
drwxrwxrwt.   3 root root  4096 Sep 13 03:37 tmp
drwxr-xr-x.  13 root root  4096 Mar 28 17:53 usr
drwxr-xr-x.  18 root root  4096 Mar  7  2012 var

5
这里没有普遍的答案。以root用户身份运行以下命令,等待一段时间并粘贴您的结果:cd /; du -sxh *。它将汇总服务器上所有主目录的大小。然后,我们将有一个线索。您也可以使用cd进入此大目录,并在其中运行du命令以进行更深入的了解。
Krzysztof Adamski 2012年

@KrzysztofAdamski感谢您的快速回复。我已经用cd /; du -sxh *
Subhransu Mishra

@Subhransu根据您所看到的内容,好像您有一个在打开时仍被删除的文件。
Karlson 2012年

@Karlson我真的不明白您是否有一个在打开后仍被删除的文件。请解释。请让我知道其他可行的输出方式,以便您可以帮助我。
Subhransu Mishra 2012年

您最近删除了任何大文件吗?像日志文件或类似的东西?
Krzysztof Adamski 2012年

Answers:


12

找出磁盘消耗的最佳方法是使用图形软件,例如baobab

用它启动 sudo baobab /

在此处输入图片说明


它可以在远程服务器上工作吗?
Subhransu Mishra 2012年

@Subhransu当然可以,如果您使用X转发(ssh -XForwardX11 yesin ~/.ssh/config)进行连接。但是,如果未安装,则可能没有足够的空间来安装它和必需的目录。
吉尔斯(Gillles)“所以-别再邪恶了”

1
请参阅下面答案,以获取不需要X服务器且只需要很少服务器空间的图形工具。
dotancohen 2014年

34

雏菊使用图形工具直观地查找大文件和目录的答案可能是最好的方法。但是,请注意,“图形工具”并不意味着“需要X服务器”!这个很棒的ncdu程序在CLI中提供了图形输出,并且可以通过SSH在远程服务器上完美运行:

$ ncdu /

.  43.7GiB [##########] /home
.   5.9GiB [#         ] /usr
    1.1GiB [          ] /lib
.   1.1GiB [          ] /var
  736.9MiB [          ] /opt
. 324.6MiB [          ] /tmp
  218.4MiB [          ] /boot
.  63.8MiB [          ] /etc
   10.0MiB [          ] /sbin
    8.8MiB [          ] /bin
    3.3MiB [          ] /lib32
.   1.0MiB [          ] /run
   64.0KiB [          ] /build
!  16.0KiB [          ] /lost+found
    8.0KiB [          ] /media
    8.0KiB [          ] /mnt
    8.0KiB [          ] /.config
    4.0KiB [          ] /dev
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
!   4.0KiB [          ] /root
e   4.0KiB [          ] /cdrom
.   0.0  B [          ] /proc
.   0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img.old
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz.old

然后,/var/例如输入后:

. 395.3MiB [##########] /tmp
. 365.0MiB [######### ] /cache
. 297.8MiB [#######   ] /lib
   16.1MiB [          ] /backups
.   8.0MiB [          ] /log
.  56.0KiB [          ] /spool
   40.0KiB [          ] /games
    8.0KiB [          ] /www
e   4.0KiB [          ] /opt
e   4.0KiB [          ] /mail
e   4.0KiB [          ] /local
e   4.0KiB [          ] /crash
@   0.0  B [          ]  lock
@   0.0  B [          ]  run

在Debian或Ubuntu上轻松安装:

$ sudo apt-get install ncdu

以root身份在CentOS上轻松安装:

# yum install ncdu

6

Debian提供了一个名为 cruft IIRC,列出了系统上可能没有的文件。


怎么使用?
尼隆,

5

在中制作一个新文件 /bin名为treesize

chmod +x /bin/treesize

将此粘贴到其中。

#/bin/sh
du -k --max-depth=1 | sort -nr | awk '
     BEGIN {
        split("KB,MB,GB,TB", Units, ",");
     }
     {
        u = 1;
        while ($1 >= 1024) {
           $1 = $1 / 1024;
           u += 1
        }
        $1 = sprintf("%.1f %s", $1, Units[u]);
        print $0;
     }
    '

输出看起来像这样。

#treesize
3.0 GB .
1.1 GB ./usr
759.9 MB ./var
353.3 MB ./root
307.1 MB ./opt
270.7 MB ./lib
98.6 MB ./home
60.1 MB ./boot
9.8 MB ./etc
8.3 MB ./bin
8.1 MB ./sbin
268.0 KB ./run
40.0 KB ./tmp
16.0 KB ./lost+found

4

您可以使用来检查已删除的文件。lsof | grep -i deleted 然后,您可以查看某个进程是否挂在您认为已删除的inode上。如果是这样,请重新启动父进程以释放旧的(已删除)文件。


3

这将为您提供FS上最大的文件,也许您会找到一些可以删除的文件。

find / -xdev -type f -size +100000c -exec ls -la {} \; 2>/dev/null | sort -nk5 | tail -20

如果需要更长的输出,只需在tail命令后更改数字即可。
请发布以下内容的输出:

df -h /
du -shx /

这两个命令都应显示FS的相似已用空间。


1

在Askubuntu.com的此帖子上找到了一些非常有用的命令。释义:

  • 显示当前目录中的前10个最大子目录: du -sk * | sort -nr | head -10
  • 使用filelight / kDirStat / baobab直观地查看磁盘空间的位置
  • 检查是否有要删除的旧内核: ls -lh /boot
  • 清洁包装:sudo apt-get autoremovesudo apt-get autoclean
  • 查看所有已安装软件包的列表,按大小排序: dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
  • 使用翻译清理未使用的语言文件: sudo apt-get install localepurge
  • 检查/ var / tmp /的内容: du -sh /var/tmp/
  • 还检查 man deborphan
  • 搜索大文件:find / -type f -size +1024kfind / -size +50000 -exec ls -lahg {} \;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.