֪ʶÄÚÈÝ£º
*¹ÜÀíͳ¼ÆÐÅÏ¢
*Ö´Ðб¸·Ý
*¹ÜÀíÓû§
¶ÔÓÚlinux SAÀ´Ëµ,ûɶ±Èshell½Å±¾±à³Ì¸üÓÐÓõÄÁË.linuxϵͳÿÌ춼ÓкܶàÈÎÎñÐèÒª×öºÃ,´Ó¼àÊÓϵͳ
´ÅÅ̿ռ䡢ϵͳÓû§µ½±¸·ÝϵͳÖØÒªÎļþ.ͨ¹ýshell½Å±¾¿ÉÒÔ ¹¤×÷±äµÃ·Ç³£ÇáËɺ͸ßЧ£¡
1¡¢¼àÊÓϵͳͳ¼ÆÐÅÏ¢
È·±£ÏµÍ³µÄÕý³£ÔËÐÐÊÇlinux SAµÄºËÐÄÈÎÎñÖ®Ò»,Õâ¾ÍÐèҪͨ¹ý´´½¨shell½Å±¾À´¼àÊÓ¶àÖÖ²»Í¬µÄϵͳµÄͳ¼ÆÐÅÏ¢,ÉõÖÁ²»ÐèÒªÈ˹¤¸ÉÔ¤¡¢°ëÒ¹Èý¸üÖ´ÐÐϵͳ½Å±¾.
1.1¡¢ º¯Êý
Òª×Ô¶¯¼àÊÓϵͳµÄ´ÅÅÌ¿Õ¼ä, ҪʹÓÿÉÒÔÏÔʾ´ÅÅÌ¿Õ¼äʹÓÃÇé¿öµÄÃüÁîdf£º
[root@wzp ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 7033724 4463456 2207200 67% /
/dev/sda1 101086 11301 84566 12% /boot
tmpfs 257700 0 257700 0% /dev/shm
ÕâÀïÍ·ÎÒÖ÷ÒªÌáÈ¡¸ùĿ¼´ÅÅÌʹÓÃÂʼ´¿É,¼´67%Õâ¸öÊý¾Ý.
ÕâÑùÒ»À´,ÎÒÃǾÍÐèҪʹÓÃshellÀ´Áé»îÌáÈ¡Õâ¸öÊý¾ÝÁË£º
ÎÒÃÇ °ÑµÚ¶þÐÐÌáÈ¡³öÀ´,Ö®ºóÔÙÌáÈ¡67%Õâ¸öÊý¾Ý, ÎÒÃÇÒ»²½Ò»²½À´·ÖÎö.
´ÅÅÌ¿Õ¼äʹÓÃÇé¿öµÄÊý¾Ý¶¼ÊDZ仯µÄ,Ψ¶À²»±äµÄ¾ÍÊÇÎļþϵͳ/dev/sda3ºÍ µÄ/, ÎÒÃÇÓÐÁ½ÖÖ·½Ê½ÌáÈ¡³öÕâÒ»ÐУº
[root@wzp ~]# df | sed -n ''//dev/sda3/p''
/dev/sda3 7033724 4463456 2207200 67% /
ÒªÖªµÀ,¶ÔÓÚÕýб¸ÜÐèҪͨ¹ýתÒåµÄ,°Ñº¬ÓÐ/dev/sda3Îı¾Æ¥ÅäÐÐÊä³öµ½STDOUT
[root@wzp ~]# df | sed -n ''//$/p''
/dev/sda3 7033724 4463456 2207200 67% /
ÎÒÃÇÖªµÀÕâÒ»ÐÐΨ¶ÀÒÔ¸ù(/)·ûºÅ½áβ, ¿ÉÒÔ°ÑÒÔ¸ù(/)·ûºÅ½áβµÄÐÐÌáÈ¡³öÀ´
ͨ¹ýÈçÉÏÈÎÒâÒ»ÖÖ·½·¨,ÎÒÃǶ¼×öºÃÁ˵ÚÒ»²½µÄ×¼±¸,½ÓמÍÊÇ°Ñ67%ÌáÈ¡³öÀ´,ÒªÖªµÀ,Õâ¸ö67µÄÊý¾Ý¿ÉÒÔÒ»Ö±´¦ÓڸıäÖ®ÖÐ, ²»¿ÉÒÔʹÓÃ67Õâ¸ö¹Ø¼üÊý¾Ý.ºÜÃ÷ÏÔ,¶ÔÓÚÕâ¸öÊý¾Ý·ÅÖõÚÎåλ, ͨ¹ý$5ºÜÈÝÒ׾ͰÑÊý¾ÝÌáÈ¡³öÀ´ÁË£º
[root@wzp ~]# df | sed -n ''//$/p'' | gawk ''{print $5}''
67%
[root@wzp ~]# df | sed -n ''//dev/sda3/p'' | gawk ''{print $5}''
67%
ͨ¹ý½èÓÃgawk°ÑµÚÎåλÖõÄÊý¾ÝÌáÈ¡,µ½ÁËÕâÀïÓ¦¸Ã²»ÄÑ´¦ÀíÁË,¾ÍÊÇÈ¥µô%·ûºÅ£º
[root@wzp ~]# df | sed -n ''//$/p'' | gawk ''{print $5}'' | sed ''s/%//''
67
[root@wzp ~]# df | sed -n ''//dev/sda3/p'' | gawk ''{print $5}'' | sed ''s/%//''
67
OKÁË,µ½ÕâÀïÒѾʵÏÖÁËÎÒÃǵÄÒªÇó,¿ÉÒÔ¶¯Ì¬ÌáÈ¡¸ùĿ¼´ÅÅÌʹÓÃÇé¿öÁË.
1.2¡¢´´½¨½Å±¾
ÉÏÃæÒѾ֪µÀÈçºÎ»ñÈ¡´ÅÅÌ¿Õ¼äʹÓÃÇé¿öÊý¾Ý,½ÓÏÂÀ´¾ÍÊÇ´´½¨½Å±¾ÁË
- [root@wzp ~]# cat diskmonitor
- #!/bin/bash
- # monitor available disk space
- space=`df | sed -n ''//dev/sda3/p'' | gawk ''{print $5}'' | sed ''s/%//''`
- if [ $space -gt 90 ];then
- echo "Disk space on root at $space% used" | mail -s "Disk warning"
- else
- echo "The disk space is used $space%" | mail -s "Disk space is enought"
- fi
ͨ¹ý´Ë½Å±¾ÊµÏÖµ±¸ùĿ¼´ÅÅÌʹÓÃÂʳ¬¹ý90%µÄʱºò×Ô¶¯·¢±¨¾¯ÓʼþÐÅÏ¢¸øroot
1.3¡¢ÔËÐнű¾
[root@wzp ~]# chmod x diskmonitor
ͨ¹ý¸ø½Å±¾¸³ÓèÖ´ÐÐȨÏÞ,È»ºó½èÓÃcrontab¼Æ»®ÈÎÎñʵÏֽű¾¶¨Ê±ÔËÐÐ
[root@wzp ~]# crontab -l
30 0,12 * * * /root/diskmonitor
ʵÏֽű¾Ã¿ÌìÁ賿12µã30·ÖºÍÖÐÎç12µã30·Ö·Ö±ðÖ´ÐÐÒ»´Î½Å±¾
2¡¢¼à¿Ø´ÅÅÌ×ÊÔ´
2.1¡¢ º¯Êý
Èç¹û˵linux·þÎñÆ÷ÉÏÓÐÐí¶àÓû§,ÌرðÊÇһЩÎļþ·þÎñÆ÷(ftp¡¢samba),¾Í ¶Ô´ÅÅÌ×ÊÔ´×öºÃ¼à¿Ø.
ĬÈÏÇé¿öÏÂ,ϵͳÓû§Ò»°ãÖ»¶Ô×Ô¼ÒĿ¼Óдæ·Å×ÊÔ´µÄȨÏÞ, ¾Í ¶Ô/homeĿ¼ÏÂ×öÊý¾Ýͳ¼Æ£º
¿ÉÒÔÁªÏëµ½µÄÃüÁîÓ¦¸ÃÊÇduÁË£º
[root@wzp ~]# du -s /home/*
7100 /home/51cto
18684 /home/mysql
90236 /home/www
ͨ¹ýduÃüÁî¿ÉÒÔºÜÇå³þµÄÁ˽⵽¸÷¸öÓû§×Ô¼ÒĿ¼´ÅÅÌʹÓÃÇé¿ö(Ç°ÃæµÄÊý¾Ýµ¥Î»ÊÇKB)
Èç¹û˵/homeĿ¼ÏÂÓÐlost foundµÄ»°¿ÉÒÔͨ¹ýgrep -v lost foundÀ´¹ýÂ˵ô.
½ÓÏÂÀ´ÎÒÃÇÖ÷ÒªÊÇÌáÈ¡Êý¾ÝºÍÓû§Ãû,Ò²¾ÍÊÇ˵¿ÉÒÔ°Ñ/home/¸øÈ¥µô,×ö·¨ºÜ¼òµ¥£º
[root@wzp ~]# du -s /home/* | sed ''s//home///''
7100 51cto
18684 mysql
90236 www
ΪÁ˸üºÃµÄÏÔʾ´ÅÅÌ×ÊԴʹÓÃÇé¿öµÄ±¨±í,¿ÉÒÔÏȶÔÊý¾Ý½á¹û×öÒ»¸öÅÅÐò£º
[root@wzp ~]# du -s /home/* | sed ''s//home///'' | sort -g -r
90236 www
18684 mysql
7100 51cto
ͨ¹ýsort -g -r(-g±íʾ½«ËùÓÐÊý¾ÝÅÅÐò£»-r±íʾ°´ÕÕ½µÐòÅÅÐò)ʵÏÖËùÕ¼´ÅÅÌ¿Õ¼ä´Ó´óµ½Ð¡ÅÅÐò.¶ÔÁË,»¹ÓÐÒ»Ìõ¾ÍÊÇËùÓÐÓû§ËùÕ¼´ÅÅÌ×ÜÁ¿£º
[root@wzp ~]# du -s /home
116028 /home
2.2¡¢´´½¨½Å±¾
ͨ¹ý½èÓÃÁÙʱĿ¼´´½¨µÄÁÙʱÎļþ,½«Êý¾Ý±¨±íÒÔÍ·²¿¡¢±¨¸æÖ÷Ì塢β²¿µÄÐÎʽÏÔʾ£º
|