Linux怎么查看磁盘空间?
今天的CI突然failed掉了,我很震惊,因为通常不会有那么多的情况在同一时间错误,这应该不是情况本身的问题,而是环境除了情况。登录到环境的服务器,很快发现流服务器的磁盘空间已满。
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
143G 143G 0G 100% /
tmpfs 1007M 420K 1007M 1% /dev/shm
/dev/sda1 194M 22M 163M 12% /boot
返回根目录:
[root@localhost /]# du --max-depth=1 -h
du: cannot access `./proc/21912/task/21912/fd/4': No such file or directory
du: cannot access `./proc/21912/task/21912/fdinfo/4': No such file or directory
du: cannot access `./proc/21912/fd/4': No such file or directory
du: cannot access `./proc/21912/fdinfo/4': No such file or directory
0 ./proc
552K ./tmp
24K ./srv
4.0K ./selinux
26G ./usr
1.9G ./backup
12K ./.dbus
16K ./lost+found
du: cannot access `./var/www/html/content/adp_SD/20131229T101314-01-15054.ts': No such file or directory
72G ./var
95M ./lib
28G ./root
17M ./boot
95M ./vobs
0 ./sys
6.5M ./bin
4.0K ./media
14M ./sbin
617M ./mnt
3.4G ./opt
du: cannot access `./home/iptv/.gvfs': Permission denied
3.4G ./home
30M ./etc
584K ./dev
143G .
很快可以发现/usr,/var, /root这三个目录的空间占用比较多,进入这几个目录分别运行这个目录,可以很快发现是哪些目录占用了大量的空间。
进入到这些目录
[root@localhost logs]# pwd
/usr/local/apache/logs
[root@localhost logs]# du -sh
22G .
[root@localhost logs]# ls -la
total 22102732
drwxr-xr-x 2 root root 4096 2013-12-30 00:20 .
drwxr-xr-x 16 root root 4096 2013-09-09 04:22 ..
-rw-r--r-- 1 root root 8015990563 2013-12-30 01:54 access_log
-rw-r--r-- 1 root root 174984 2013-12-30 00:15 error_log
-rw-r--r-- 1 root root 6 2013-12-05 01:45 httpd.pid
-rw-r--r-- 1 root root 14614376912 2013-12-30 01:54 rewrite.log
-rw-r--r-- 1 root root 2540601 2013-12-30 00:16 ssl_request_log
可以发现,日志占用大量的空间。查看日志文件后,发现它没有太多的使用价值。果断地删除它。通过这件事,我们反映,写一个自动化的脚本来管理磁盘空间,当磁盘空间下降到一定的值时,它会提醒管理员并自动删除一些不需要的文件。