'/' 分区的容量已达到 100%,哪些内容是无用的并且可以删除?

'/' 分区的容量已达到 100%,哪些内容是无用的并且可以删除?

我的服务器硬盘的“/”分区容量已达到 100%,由于所有其他分区本质上都是最小的,因此我需要删除任何大型日志/文件或将其存档以腾出“/”中的空间。我列出了 /var 的内容(看来“/”上安装的最大目录是“/var”)

[root@ensim var]# ls
account      appliance  db     gdm    lock  mailman  opt       spool    tux    yp
adm      cache  empty  lib    log   named    preserve  tmp  usage  zope
analog-5.32  crash  ftp    local  mail  nis      run       tomcat4  www

我还列出了日志的内容

[root@ensim var]# cd log
[root@ensim log]# ls
appliance   cron.3   ksyms.4    messages      rpmpkgs.3     spooler.2  wpchkquota.log
boot.log    cron.4   ksyms.5    messages.1    rpmpkgs.4     spooler.3  wtmp
boot.log.1  cups     ksyms.6    messages.2    samba     spooler.4  wtmp.1
boot.log.2  dmesg    lastlog    messages.3    scrollkeeper.log  squid      xferlog
boot.log.3  ensim    mail   messages.4    secure        tmp    xferlog.1
boot.log.4  gdm      maillog    mysqld.log    secure.1      up2date    xferlog.2
clamav      httpd    maillog.1  mysqld.log.4  secure.2      up2date.1  xferlog.3
conf        ksyms.0  maillog.2  pgsql         secure.3      up2date.2  xferlog.4
cron        ksyms.1  maillog.3  rpmpkgs       secure.4      up2date.3  xferlog.5
cron.1      ksyms.2  maillog.4  rpmpkgs.1     spooler       up2date.4  yum.ensim.log
cron.2      ksyms.3  mailman    rpmpkgs.2     spooler.1     vbox       zope

[root@ensim log]# du -sh ./*
4.0M    ./appliance
8.0K    ./boot.log
4.0K    ./boot.log.1
4.0K    ./boot.log.2
4.0K    ./boot.log.3
0   ./boot.log.4
472K    ./clamav
60K ./conf
28K ./cron
372K    ./cron.1
252K    ./cron.2
316K    ./cron.3
0   ./cron.4
24K ./cups
12K ./dmesg
84K ./ensim
4.0K    ./gdm
876K    ./httpd
84K ./ksyms.0
84K ./ksyms.1
84K ./ksyms.2
84K ./ksyms.3
84K ./ksyms.4
84K ./ksyms.5
84K ./ksyms.6
60K ./lastlog
4.0K    ./mail
19M ./maillog
7.1G    ./maillog.1
179M    ./maillog.2
210M    ./maillog.3
0   ./maillog.4
4.0K    ./mailman
508K    ./messages
4.3M    ./messages.1
1.6M    ./messages.2
19M ./messages.3
0   ./messages.4
4.0K    ./mysqld.log
0   ./mysqld.log.4
0   ./pgsql
32K ./rpmpkgs
32K ./rpmpkgs.1
32K ./rpmpkgs.2
32K ./rpmpkgs.3
32K ./rpmpkgs.4
4.0K    ./samba
4.0K    ./scrollkeeper.log
104K    ./secure
1.5M    ./secure.1
1.2M    ./secure.2
2.3M    ./secure.3
0   ./secure.4
0   ./spooler
0   ./spooler.1
0   ./spooler.2
0   ./spooler.3
0   ./spooler.4
4.0K    ./squid
24G ./tmp
0   ./up2date
0   ./up2date.1
0   ./up2date.2
0   ./up2date.3
0   ./up2date.4
4.0K    ./vbox
4.0K    ./wpchkquota.log
68K ./wtmp
96K ./wtmp.1
0   ./xferlog
4.0K    ./xferlog.1
4.0K    ./xferlog.2
128K    ./xferlog.3
4.0K    ./xferlog.4
4.0K    ./xferlog.5
0   ./yum.ensim.log
0   ./zope

[root@ensim log]# du -sh *  
4.0M    appliance
8.0K    boot.log
4.0K    boot.log.1
4.0K    boot.log.2
4.0K    boot.log.3
0   boot.log.4
472K    clamav
60K conf
28K cron
372K    cron.1
252K    cron.2
316K    cron.3
0   cron.4
24K cups
12K dmesg
84K ensim
4.0K    gdm
876K    httpd
84K ksyms.0
84K ksyms.1
84K ksyms.2
84K ksyms.3
84K ksyms.4
84K ksyms.5
84K ksyms.6
60K lastlog
4.0K    mail
19M maillog
7.1G    maillog.1
179M    maillog.2
210M    maillog.3
0   maillog.4
4.0K    mailman
508K    messages
4.3M    messages.1
1.6M    messages.2
19M messages.3
0   messages.4
4.0K    mysqld.log
0   mysqld.log.4
0   pgsql
32K rpmpkgs
32K rpmpkgs.1
32K rpmpkgs.2
32K rpmpkgs.3
32K rpmpkgs.4
4.0K    samba
4.0K    scrollkeeper.log
108K    secure
1.5M    secure.1
1.2M    secure.2
2.3M    secure.3
0   secure.4
0   spooler
0   spooler.1
0   spooler.2
0   spooler.3
0   spooler.4
4.0K    squid
24G tmp
0   up2date
0   up2date.1
0   up2date.2
0   up2date.3
0   up2date.4
4.0K    vbox
4.0K    wpchkquota.log
68K wtmp
96K wtmp.1
0   xferlog
4.0K    xferlog.1
4.0K    xferlog.2
128K    xferlog.3
4.0K    xferlog.4
4.0K    xferlog.5
0   yum.ensim.log
0   zope

哪些内容是没用的,可以删除?

答案1

哪些内容是没用的,可以删除?

嗯,只有您才能决定。我们怎么知道您的服务器的用途?


其中最大的目录是什么/var?如果我猜的话,应该是/var/log,这是系统日志存放的地方。找到其中最大的文件,然后删除它们或复制到另一台服务器进行存档。然后,为了防止将来发生这种情况,请确保正确安装和配置了 logrotate。

答案2

/var/maillog真是个肥猪。她的体重有 7 克。你肯定会想把她介绍给 Jenny Craig。但在你开始使用旧方法之前rm -f /var/maillog,你可能想总结一下这些条目,以发现任何与你的邮件配置/设置/使用有关的问题的迹象。有很多更精致、更体面的方式来做到这一点,所以不要嘲笑我在这里展示的原始人方式:

cat /var/log/maillog | cut -d":" -f4 | sort | uniq -c

只需验证第四个字段是“主食(向丹·奎尔大喊,只是开玩笑......)”。

找到最大的问题,并推断是否存在其他问题。例如,我曾经收到一封外发邮件,它不断被退回,并在旧 mail.log 中占据了太多条目……我最终找到了问题所在:域名输入错误,没有 MX 记录。然而,邮件被从队列中移出,无法尝试投递……

已修复gmale.com或类似问题gmail.com,并将该内容踢出队列。重复的日志条目还突出显示了 MTA 的错误配置。

这是一个有用的发现,递归地,用于识别隐藏在文件系统目录结构中的个人、非合作者、史诗级暴饮暴食者和妈妈们:

find /var -size +10000000

答案3

这无助于确定要删除什么,但如果您的文件系统是 extX(ext2、3 或 4),则会为您提供一些额外的空间。您可能可以从保留块中回收一些空间:

在 tune2fs 手册页中:

-m 保留块百分比 设置仅可由特权进程分配的文件系统百分比。保留一定数量的文件系统块供特权进程使用是为了避免文件系统碎片化,并允许系统守护进程(如 syslogd(8))在非特权进程被阻止写入文件系统后继续正常运行。通常,保留块的默认百分比为 5%。

因此,您可以运行以下命令

tune2fs -m 1 /dev/sda1

其中 /dev/sda 是根分区的设备名称。

答案4

我会推荐这个(作为 cron 中的计划运行)

find /var/log/ -type f -mtime +7 -name '*.bz2' -exec rm "{}" \;
find /var/log/ -type f -mtime +1 -not -name '*.bz2' -exec bzip2 "{}" \;

这样您就可以保留日志,但又不会占用太多空间,因为日志文件的压缩效果确实很好。

通过更改 -mtime 参数,您可以随意调整希望保持未压缩和压缩的天数。

相关内容