一、根据空间大小删除最早的日志文件
首先定义一个服务器最小空间值,如10G,然后利用while循环,以home所在分区为例。若该空间小于设定值则进行删除
size=10485760
while [ ` df |grep 'home' |awk '{print $4}'` -lt $size ]
do
ls -t |tail -1 |xargs -i -n1 rm {}
done
ls -t 排序
tail -1 显示第一个
然后执行删除操作
二、根据数量删除最早的文件
#!/bin/bash
cd /home/work/backup
OLDDIR=`pwd`
#保存备份个数
number=2
#当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
#比较数量,由于多个数据库,写成函数的形式传参
function compare(){
while [ `ls -l -crt ${1}*.tgz | awk '{print $9 }' | wc -l` -gt $number ]
do
#删除最早生成的备份,只保留自定义数量的备份
file=`ls -l -crt ${1}*.tgz | awk '{print $9 }' | head -1`
rm -f $file
#删除文件日志
echo "${DATETIME},delete $file " >> log.txt
done
}
compare article