码迷,mamicode.com
首页 > 其他好文 > 详细

关于保留最新文件或清除过期文件的简单总结

时间:2016-08-02 22:27:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:日志文件管理   find删除文件   备份文件管理   

  在运维工作中经常遇到要管理备份、日志等与时间戳有关的文件,例如删除超过10天的备份/日志文件,保存最新的10个的备份/日志文件等。

  “删除超过10天的备份/日志文件”是用的比较多的一种,通常用于定时计划任务,每次产生这些文件都是规律的时间点。

  “保存最新的10个备份/日志文件”这种需求通常用在不定时的产生备份(例如每次手动执行一次产生)和日志文件(超过一定的大小则切割)。

  两种不同的需求对应不同的方法去实现,无论使用什么样的方法都要找出所需要操作的文件或者去除不需要的文件。

  Linux Bash Shell代码 “删除超过10天的备份/日志文件” 找出这些超过10天的文件,然后执行删除:

function clean_old_files_older_than_day(){
    save_days=10
    files_ops="/data/docker/logs/myApp/"
    need_clean=$(find ${files_ops} -name "*.log" -mtime +${save_days} -exec ls ‘{}‘ \;)
    if [ ! -z ${need_clean} ]; then
        echo "Old logs have been found, clean old logs now. "
        find -L ${files_ops} -maxdepth 1 -name "*.log" -a ! -name "^." -mtime +${save_days} -exec rm -rf ‘{}‘ \;
    else
        echo "All logs are not expired, skipping. "
    fi
}

  Linux Bash Shell代码 “保存最新的10个备份/日志文件” 找出这些除了最新的10个文件之外的文件,然后执行删除:

function keep_some_newest_files(){
    num_save=10
    files_ops="/data/backup/db/mysql/"
    num_files=$(find ${files_ops} -type d -printf "%C@ %p\n" | sort -n | wc -l)
    if test ${num_files} -gt ${num_save};then
        echo "total number of files is $num_files."
        num_ops=$(expr ${num_files} - ${num_save})
        echo "$num_ops files are going to be handled."
        list_ops=$(find ${files_ops} -type d -printf "%C@ %p\n" | sort -n | head -n${num_ops} | awk -F ‘[ ]+‘ ‘{print $2}‘)
        # IFS=‘ ‘$‘\t‘$‘\n‘, If IFS is unset, or its value is exactly <space><tab><newline>
        old_IFS=$IFS
        IFS=" "
        for file_ops in ${list_ops};do
            echo "$file_ops"
            test -d ${file_ops} && rm -rf ${file_ops}
        done
        IFS="$old_IFS"
    else
        echo "total number of files is $num_files."
        echo "0 files are going to be handled, skipping."
    fi

}

tag:日志文件管理,备份文件管理,find删除文件

--end--


本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1833665

关于保留最新文件或清除过期文件的简单总结

标签:日志文件管理   find删除文件   备份文件管理   

原文地址:http://dgd2010.blog.51cto.com/1539422/1833665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!