原因
在上一篇文章中,我写了完整的磁盘监控步骤,希望对大家有所帮助。但是这里还需要作出一点补充。
根据上一篇文章的内容,我是使用iostat命令不停的收集磁盘的信息,然后写入到/tmp/iostat_ouput文件中,如果执行时间太长会造成磁盘占用空间大的问题,在我的实际测试中,执行了3个月后大概占用了200M空间,对于物理机来说是不大的,但是部分虚拟机本身就只分配了20G的空间,这样空间就比较紧张。所以需要定期清理,但是虚拟机太多,不可能一台一台人工的去弄。
puppet实现定期清理
前面我写过一篇文章,使用puppet管理500多台服务器,其中只说了批量推送puppet客户端,puppet本身的脚本会在以后的文章中陆续写出来,这里就开始第一个吧。
配置脚本如下
1 cron { "restart_iostat": 2 command=>"kill `ps -ef|grep "iostat -m -x -d 30"|grep -v grep |awk '{print $2}'` >/dev/null 2>&1", 3 user=>root, 4 minute=>15, 5 hour=>20, 6 monthday=>13, 7 }
相当于使用puppet配置个crontab,每个月重启一次iostat进程。
客户端执行crontab -uroot -l,可以看到结果如下
# Puppet Name: restart_iostat 15 20 13 * * kill `ps -ef|grep "iostat -m -x -d 30"|grep -v grep |awk '{print $2}'` >/dev/null 2>&1
这样就实现了自动清理工作,不用再担心磁盘会被占用很多空间了。