【linux】监控磁盘情况并自动删除备份文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【linux】监控磁盘情况并自动删除备份文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2037字,纯文字阅读大概需要3分钟。
内容图文
背景:我有一个备份目录/home/kzy/bakup,会每天备份一些信息。随着日子一天天的过去,这个文件夹越来越大,终于把磁盘撑满了.....
需求:当磁盘占有率超过80%时自动删除该文件夹下最老的30天文件,但要至少保留最近7天的文件。
代码:
如下。(码了一整天啊,才把这么点代码给码出来啊!!!shell编程超级烂啊!!!连基本语法都要查啊!!!各种报错各种调啊!!!为什么我的水平这么烂!!!!!!)
#!/bin/bash #monitor available disk space dir=‘/home/kzy/bakup‘ rm_date=30 least_retain_date=7 threshold=80 SPACE=$(df -P| sed -n ‘/\/$/p‘ | gawk‘{print $5}‘ | sed‘s/%//‘) cur_date=$(date"+%Y-%m-%d %H:%M:%S") echo"==========$cur_date start=========="if [ $SPACE -ge $threshold ] then oldest_file=$(ls -alt| tail -1| gawk‘{print $9}‘) oldest_date=$(stat $oldest_file| grep ^Modify| gawk‘{print$2}‘| sed‘s/-//g‘) cur_time=$(date +%s) oldest_time=$(date -d ${oldest_date} +%s) diff_time=$(($cur_time - $oldest_time)) diff_date=$(($diff_time / 86400)) remain_date=$least_retain_date if [ $(($diff_date-$rm_date)) -ge $least_retain_date ] then remain_date=$(expr $diff_date - $rm_date) fi cmd="find $dir -mtime +$remain_date -exec rm -rvf {} \;"echo"Space is use more than $threshold%! Rmove some tmp files!"echo $cmd echo"---detail---" eval $cmd elseecho"$SPACE% used!"fiecho"=======end======="
放在crontab里每天跑就行了,记得保留日志。
------------------------------------细节分割线-----------------------------------
下面,记录一下我学到的各种知识。
1.在我写了一个简单的if 语句后,不停报错Syntax error: “fi” unexpected (expecting “then”
原因:我是在windows下编写的代码,然后拖到linux下面跑的。由于两个平台的格式不同,windows下编辑的代码会有特殊字符,所以运行失败。
解决:在linux下安装dos2unix,运行
dos2unix monitor_disk.sh
后面的是要转换的文件名。
2. 查看磁盘使用情况 df命令
df -hP
结果
Filesystem Size Used Avail Use% Mounted on udev 973M 0 973M 0% /dev tmpfs 199M 26M 174M 13% /run /dev/sda1 19G 14G 4.3G 76% / tmpfs 992M 308K 992M 1% /dev/shm tmpfs 5.0M4.0K 5.0M1% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs none 992M 2.6M 990M 1% /tmp/guest-gRYtRh tmpfs 199M 68K 199M 1% /run/user/123 tmpfs 199M 76K 199M 1% /run/user/1000 /dev/sr0 71M 71M 0100% /media/zhuwenqian/VMware Tools
参数说明:
-h : 已M、G等单位显示,更便于阅读
-P : 如果没有-P,则在文件路径过长时结果显示会分行,导致难以用脚本处理。加上-P可以保证不换行。
原文:http://www.cnblogs.com/dplearning/p/6347173.html
内容总结
以上是互联网集市为您收集整理的【linux】监控磁盘情况并自动删除备份文件全部内容,希望文章能够帮你解决【linux】监控磁盘情况并自动删除备份文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。