备份服务器使用迁移的形式,由于数据量大存储空间有限,当前dataserver数据分区总大小4T,两个server服务器,每天视频数据共产生200G-300G,dataserver差不多存一个半月数据。
dataserver录像数据目录格式:dataserver存储路径/serverID/server存储路径
录像文件一天一个目录以年-月-日的格式生成,根据目录名称删除数据。阳光保险使用定时任务一个小时检查一次,如果占用率超过84%就删除一天历史数据。
定时任务格式:1 */1 * * * /bin/bash /data1/dataclean/dataclean.sh
脚本可以直接修改path地址使用,如果其他服务使用或者删除数量不同根据具体情况修改。
脚本内容:
- #!/bin/bash
- datasize=`df -h |grep data1|awk ‘{print $5}’|awk -F ‘%’ ‘{print $1}’`
- path1=/data1/data/服务器1id/data…/
- path2=/data1/data/服务器2id/data…/
- if [[ $datasize -ge 84 ]]
- #客户监控系统85%告警
- then
- delfile1=`ls -v $path1 | awk ‘NR==1{print $1}’`
- delfile2=`ls -v $path2 | awk ‘NR==1{print $1}’`
- echo “$(date +%Y/%m/%d\ %T) Delete files in date1 $path1:$delfile1” >> /tmp/dataclean.log
- echo “$(date +%Y/%m/%d\ %T) Delete files in date1 $path2:$delfile2” >> /tmp/dataclean.log
- rm -rf $path1$delfile1 $path2$delfile2
- if [ -e “$path1$delfile1” -o -e “$path2$delfile2” ]; then
- #双中括号使用-o报错
- echo “$(date +%Y/%m/%d\ %T) [ERROR]:Failed to delete file” >> /tmp/dataclean.log
- exit 1
- else
- echo “$(date +%Y/%m/%d\ %T) File deleted successfully” >> /tmp/dataclean.log
- exit 2
- fi
- else
- echo “$(date +%Y/%m/%d\ %T) The size of data1 is $datasize%” >> /tmp/dataclean.log
- exit 3
- fi
复制代码
删除多天数据脚本:
- #!/bin/bash
- datasize=`df -h |grep data1|awk ‘{print $5}’|awk -F ‘%’ ‘{print $1}’`
- path1=/data1/data/服务器1id/data…/
- path2=/data1/data/服务器2id/data…/
- if [[$datasize -ge 89 ]]
- then
- delfile1=`ls -v $path1 | awk ‘NR<=5{print $1}’`
- delfile2=`ls -v $path2 | awk ‘NR<=5{print $1}’`
- #删5天
- echo “$(date +%Y/%m/%d\ %T) Delete files in date1 $path1:$delfile1” >> /tmp/dataclean.log
- echo “$(date +%Y/%m/%d\ %T) Delete files in date1 $path2:$delfile2” >> /tmp/dataclean.log
- cd $path1
- rm -rf $delfile1
- cd $path2
- rm -rf $delfile2
- delfile1_1=`echo $delfile1 | awk ‘{print $1}’`
- delfile1_2=`echo $delfile1 | awk ‘{print $2}’`
- delfile1_3=`echo $delfile1 | awk ‘{print $3}’`
- delfile1_4=`echo $delfile1 | awk ‘{print $4}’`
- delfile1_5=`echo $delfile1 | awk ‘{print $5}’`
- delfile2_1=`echo $delfile2 | awk ‘{print $1}’`
- delfile2_2=`echo $delfile2 | awk ‘{print $2}’`
- delfile2_3=`echo $delfile2 | awk ‘{print $3}’`
- delfile2_4=`echo $delfile2 | awk ‘{print $4}’`
- delfile2_5=`echo $delfile2 | awk ‘{print $5}’`
- if [ -e “$path1$delfile1_1” -o -e “$path1$delfile1_2” -o -e “$path1$delfile1_3” -o -e “$path1$delfile1_4” -o -e “$path1$delfile1_5” -o -e “$path1$delfile2_1” -o -e “$path1$delfile2_2” -o -e “$path1$delfile2_3” -o -e “$path1$delfile2_4” -o -e “$path1$delfile2_5” ]; then
- echo “$(date +%Y/%m/%d\ %T) [ERROR]:Failed to delete file” >> /tmp/dataclean.log
- exit 1
- else
- echo “$(date +%Y/%m/%d\ %T) File deleted successfully” >> /tmp/dataclean.log
- exit 2
- fi
- else
- echo “$(date +%Y/%m/%d\ %T) The size of data1 is $datasize %” >> /tmp/dataclean.log
- exit 3
- fi
复制代码
客户实际情况截图: |
脚本截图.jpg (1.07 MB, 下载次数: 1)
