背景需求
应用程序产生的数据文件(*.csv格式)需要定期进行定期打包、压缩(*.tar.gz),压缩文件文件个数超过一定数量后循环覆盖。本文介绍一种Linux操作系统下脚本实现方式,当然也可以编写程序实现,个人认为,脚本语言实现显得更为简练。
流程图
脚本
#!/bin/sh
#延时时间
looptime=3600
while :
do
#获取日期,使用awk获取外部变量
dateIndex=`date|awk '{print $3}'`
yearIndex=`date|awk '{print $6}'`
monthIndex=`date|awk '{print $2}'`
echo year:$yearIndex month:$monthIndex date:$dateIndex
filename="/${yearIndex}-${monthIndex}-${dateIndex}.tar.gz"
#获取压缩文件个数
compressFileNum=`ls -l / |grep "tar.gz"|wc -l`
echo 压缩文件个数$compressFileNum
echo $filename
#每月1日或15日触发文件压缩操作,根据情况自行设定
if [ $dateIndex != 1 -a $dateIndex != 15 ]
then
echo sleep
sleep $looptime
continue
else
if [ -e $fi