我的服务器硬盘的“/”分区容量已达到 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 参数,您可以随意调整希望保持未压缩和压缩的天数。