2014-02-12 练习题

回复 收藏
你们有没有发现,日子过的太快了,一天一天的都这样流逝了。我想说的是,你离你的目标是越来越近还是越来越远呢?
时间不等人,不知不觉间,同样起步的小伙伴已经把你落的越来越远了!你一次次告诫自己,明天开始一定要好好学习,可是每天都这样告诫!一个月过去了,两个月过去了,三个月结束了,咱们的培训课也结束了。
你唯一剩下的只是哀怨!
阿铭希望,你看过这几句唠叨后,有所感知,请抓紧时间学习吧,我们要马上实现我们的目标!


今天的题目如下:
有一天,你发现你所管理的服务器磁盘某个分区马上要满了,那你如何做呢?
提示:
1. 查看和统计各个分区使用情况,把占用空间大的目录以及文件找出来,看看是不是有一些老的没有用的文件占用了空间,比如有日志,那你可以考虑写一个任务计划每天定点删除一个月之前的;
2. 如果不能删除,那么就要想办法添加磁盘,假如你已经成功添加磁盘,请问,你如何分区,然后 如何解决某个分区快满的问题?

2014-02-12 14:45 举报
已邀请:
0

larson

赞同来自:

f
0

地平线

赞同来自:

占个沙发先
#感觉一般占用空间最邪乎的就是日志了,通常都在做日志轮询
#但是有些服务的日志是由开发那边需要调试的需要实时观察,比如jboos日志之类的,所以有的日志得一直让它跑着,文件大了之后可以使用du -sh 命令来查看哪些文件比较大,跟开发沟通可否清理,于是乎
> /path/to/log.log
#由于我们有单独的存储设备,空间足够,日志只在本地服务器保留3天的 其他全部推送到服务器后然后清理 个别服务除外
0

wangdi244

赞同来自:

学习
0

s_jxiaobo

赞同来自:

看看
0

Rohero

赞同来自:

xuexi
0

gxp2008

赞同来自:

  1. #!/bin/bash
  2. ## This is fdisk free total
  3. ## gxp 2016-03-22

  4. a=`df -h`;echo -e "`date +%F-%T` \n$a" >fs_du.log
  5. b=`sed s/%//g fs_du.log |awk '$5>90 {print $6}'|sed s/Mounted//g`
  6. if [ -n "$b" ]
  7.    then
  8.        cd $b;find . -size +100M >bigsize.file
  9.        mail -s "Host Pattion Use 90%" lz_gxp@126.com
  10.    else
  11.        exit
  12. fi

为了防止不误删文件,准备了文件列表。发邮件给系统管理员。然后在处理
0

zhangyanlong

赞同来自:

1111

0

13600827194

赞同来自:

1

0

kw是id

赞同来自:

我的做法是:

1. 当某个分区使用率超过90%,搜索该分区下超过1G的30天前改动的文件名字记录到/tmp/disk.txt,然后发邮件给管理员检查磁盘使用率,删除无用的大文件

任务计划:* 3 * * * /bin/sh /usr/local/sbin/check_disk.sh

#/bin/bash
exec >>/tmp/disk.txt 2>>&1
a=`df -h -P |sed -n '2,$'p |sed -n 's/\%//g'p |awk '{print $5}'`
for i in $a
do
   if [ $i -gt 90 ]
   then
      for b in `seq 90 100`
      do
        mon=`df -h -P |sed -n 's/\%//g'p |grep $b |awk '{print $6}'`
        echo "search this partition at `date +"%F %T"`"
        /bin/find $mon -type f -size +1G -mtime +30 
        echo "finish at `date +"%F %T"`"
        echo "$mon is almost full,please delete some files refer /tmp/disk.sh" |mail -s "check_disk" 123456@qq.com
      done
   fi
done

2. 新加磁盘只分一个扩展分区,在扩展分区下划分多个逻辑分区,把旧磁盘又不能删除的大文件做软链接到新磁盘

0

西瓜糖

赞同来自:

找找思路

0

西瓜糖

赞同来自:

参考了上楼兄弟的方法:
if [ $(id -u) != "0" ]; then

    echo "Error, you must be root to run this script!"

    exit 1
fi

curip=

curtime=

vol= 

curdir=$(pwd)

for i in $vol
do

    if [ $i -gt 10 ]; then

        for j in 

            do

                path=

                echo "Let us find the big files."

                /bin/find $path -type f -size +30M -mtime +30 > $curdir/filelist.log

            done

    fi
done

echo "Disk on server $curip is going to be full soon. see more at: $curdir/filelist.log." 
echo "We will send you an email now."
/bin/mail -s "system disk info" xx@qq.com < $curdir/filelist.log
if [ $? -eq 0 ]; then

    sleep 3

    echo "OK, mail is already sent at: $curtime!"
fi

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: