`
stride
  • 浏览: 59128 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

用shell压缩三个月及之前的文件(文件名含日期)

阅读更多

在log目录下有如下文件:

 

特征很明显:中间有8位连续数字表示年月日

比如现在是2011年5月份,压缩3个月及之前的就是XXXXXXX.201102XX.log的文件

程序思路:

先用date命令加参数得出今天之前三个月的年月,比如今天是2011年5月19号,用下面这句得到201102:

date -d "3 months ago" +%Y%m

 然后用ls命令将log目录下的文件名列出来赋给数组,在循环中用正则匹配出文件名中的日期:

.*\([0-9]\{8\}\).*
 这条正则的相关文档:expr正则匹配心得1

对文件名列表数组循环,在循环中检查到匹配的则给文件名左边添加“log/”,不匹配则置为空串,注意是空串不是

然后检查最终数组是否有可用元素,如果没有则打印提示信息,有则执行tar命令;

最后删除已使用过的文件

 

echo "Please wait..."
m=`date -d "3 months ago" +%Y%m`
index=0
f=`ls log -1 -c`
for name in $f
do
    n=`expr "$name" : '.*\([0-9]\{8\}\).*'`
    if [ "$n" != "" ] && [ "$n" -le "$m"31 ] 
    then
        f[$index]="log/$name"
    else
        f[$index]=""
    fi
    (( index ++ ))
done

str=${f[@]}
if [ "${#str}" -gt 0 ]
then
    tar -zcvf logbak/$m.tar.gz  $str
else
    echo "No files found."
    exit 0
fi

echo "tar.gz maked, now delete old files."

rm -fr $str

echo "done."
exit 0
 

 

0
0
分享到:
评论

相关推荐

    入门学习Linux常用必会60个命令实例详解doc/txt

    在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 (1)Linux可以识别的文件系统 ◆ Windows 95/98常用的FAT 32文件系统:vfat ;...

    网管教程 从入门到精通软件篇.txt

     注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。  bootcfg /scan 扫描用于 Windows 安装的所有磁盘并显示结果。  注意:这些结果被静态存储,并用于本次会话。如果在...

    JAVA上百实例源码以及开源项目

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    Linux期末考试(题多 有点难度)

    6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。 参考答案: (1)...

    JAVA上百实例源码以及开源项目源代码

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    计算机应用技术(实用手册)

    这个项目可指定让AGP装置来使用的系统内存大小,这取用大小是PCI内存地址范围的一部份,可分配给图形内存的空间。 Init Display First: 这个项目可选择当系统开机时先行对AGP或是PCI插槽来做初始化的动作。 [AGP...

    Perl 实例精解(第三版).pdf

    原书名: Perl by Example(Third Edition),原出版社: PH PTR,作者: Ellie Quigley,译者: 杜炜,出版社:清华大学出版社,出版日期:2002 年8月,PDF 格式,大小 19 Mb。 内容简介 本书以最新版本的Perl ...

    易语言 茶凉专用模块

    参数 图标文件, 文本型, 可空, 图标文件的路径 可空:为空时用目标的第一个图标 .参数 运行方式, 整数型, 可空, 1,常规方式,3,最大化,7,最小化 .参数 备注, 文本型, 可空, 快方式的备注信息 .参数 快捷键, 文本型, ...

    新版Android开发教程.rar

    � 开发方向有三个重点 :----------------------------------- Android 编程基础 7 � 应用软件的开发 � 特殊功能的原生链接库 � 专属应用程序框架 � 由于 Android 的A pp Market 性质,可能催生出专门的应用...

    注册表修改大全(作者:Sunny)

    文档菜单会收集你常用的文件,它能帮助你快速打开一个用过的文件,当你不让让别人知道你使用过什么时,就得想法子将它关掉了,关掉的方法是,到HKEY_USERS\DEFAULT\Software\Microsoft\Windows\CurrentVersion\...

    易语言模块大全汇总批量下载

    2003-01-17 19:04 269825 150407 易语言模块大全\世恒通用安装系统文件压缩模块.ec 2005-10-21 15:31 4783 1766 易语言模块大全\个性信息框.ec 2004-06-01 19:06 4783 1766 易语言模块大全\个性信息框1.1.ec 2005-10...

Global site tag (gtag.js) - Google Analytics