shell sh如何每天备份log文件

#!/bin/bash

# 每天备份log文件

log_path="/home/fdipzone/logs"         # log目录
backup_path="/home/fdipzone/logs/bak"  # 备份目录
expire=30                              # 备份文件只保留30天

function backup(){

    if [ -d "$log_path" ] && [ -d "$backup_path" ]; then

        for file in $(find $log_path -maxdepth 1 -name "*.log" -type f); do
            copy $file
        done

    else
        echo "${log_path} or ${backup_path} not exists"
    fi

}

function copy(){

    ofile=$1
    dpath="${backup_path}/$(date -d yesterday +%Y/%m/%d/)"
    dfile="${dpath}${ofile##*/}"

    if [ -f "$ofile" ] && [ -s "$ofile" ]; then

        if [ ! -d "$dpath" ]; then # create folder
            mkdir -p "$dpath"
        fi

        cp "$ofile" "$dfile" # copy file
        cat /dev/null > "$ofile" # create empty file
        echo "${ofile} copy to ${dfile} success"
    fi

}

function clearexpire(){

    if [ -d "$backup_path" ]; then
        echo ${expire:=30} > /dev/null
        $(find $backup_path -name "*.log" -type f -mtime +$expire -exec rm {} \;) # delete expire file
        $(find $backup_path -mindepth 1 -depth -empty -type d -exec rm -r {} \;) # delete empty folder
    else
        echo "${backup_path} not exists"
    fi

}

backup
clearexpire

exit 0

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, file
, 备份
, function
, copy
shell备份文件
shell sh 执行的log、adb shell logcat、shell脚本分析log日志、shell log、shell log 输出到文件,以便于您获取更多的相关知识。

时间: 2024-09-15 22:00:04

shell sh如何每天备份log文件的相关文章

如何每天自动备份MySql文件

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着数据库在网站建设中的不断应用,现如今绝大多数网站已经离不开数据库支持了,因为数据库不仅可以存储网站内容等信息,还可以存储用户提交的信息.由于这些信息非常宝贵,一旦丢失几乎难以挽回. 所有站长不仅要注意备份服务器上的网页html文件,图片或者程序代码,还要对数据库文件优先进行备份. 最简单的数据库备份可以通过phpMyAdmin手动备份并下

Shell脚本切割tomcat的日志文件_linux shell

鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路径 file_size=`du $monitor_file | awk '{print $1}'` if

centos自动备份网站文件与mysql数据库脚本

案例一:shell+cron实现MySQL自动备份且自动删除N天前备份  代码如下 复制代码 #!/bin/sh DUMP=/usr/local/mysql/bin/mysqldump OUT_DIR=/home/ldl/xxx/backup/ LINUX_USER=ldl DB_NAME=ldl DB_USER=ldl DB_PASS=xxx #How much days backup most DAYS=1 #Core of script cd $OUT_DIR DATE=`date +%Y

SQL Server 2000 中清空 LOG 文件一法

server     在使用 SQL Server 时,数据库里的日志文件会越来越大,需要把它删除.     我先把这个数据库分离,在数据库上点右键 -> 所有任务 -> 分离数据库,分离之后,就可以把 Log 文件删除,同时也可以把数据进行备份.之后,就可以在所有任务里的附加数据库再把那个数据库添进来,SQL Server 会提示 LOG 文件不存在,问你是不是要新建一个,选是就行了,这样,LOG 文件就清空了.     这个方法只需几分钟的时间,但在这几分钟里,就不能访问这个数据库了,我觉

shell sh更新的css图片版本

#!/bin/bash csstmpl_path="/home/fdipzone/php/csstmpl" css_path="/home/fdipzone/php/css" replacetags=(".png" ".jpg" ".gif") convertnum=0 search_child=$1 echo ${search_child:=0} > /dev/null function creat

试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试

测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于Temporary Storage(D:). 数据库恢复操作命令如下: RESTORE DATABASE [cnblogstext] FROM DISK = N'D:\cnblogstext.bak' WITH FILE = 1, MOVE N'CNBlogsText' TO N'F:\DATA\CN

Oracle基于备份控制文件的恢复

通常在当前控制文件丢失,或者当前的控制文件与需要恢复的控制文件不一致的情况下,我们需要重新创建一个控制文件或者使用 unsingbackup controlfile方式来恢复控制文件.说简单点,只要是备份的控制文件与当前的控制文件不一致进行恢复数据库,就需要使用到 unsingbackup controlfile方式,而一旦使用了该方式,则需使用resetlgos选项来打开数据库. 一.基于备份控制文件的恢复注意事项(无论是否使用恢复目录catalog) 1.即使没有数据文件需要还原,当使用un

如何清除SQL Server 2005的LOG文件

  SQL Server 数据库使用时间一长就会导致Log文件逐渐变的庞大, 想备份一下数据库, 想发给谁都很困难 运行下面的语句就可以清到Log文件只剩下1M左右的空间. DUMP TRANSACTION 数据库名 WITH NO_LOG DBCC SHRINKDATABASE('数据库名',TRUNCATEONLY)

Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    Oracle 基于备份控制文件的恢复(unsing backup controlfile)     有关RMAN的备份恢复与管理请参考     RMAN 概述及其体系结构     RMAN 配置.监控与管理     RMAN 备份详解     RMAN 还原与恢复     RMAN catalog 的创建和使用     基于catalog 创建RMAN存储脚本     基于catalog 的RMAN 备份与恢复     RMAN 备份路径困惑     使用RMAN实现异机备份恢复(WIN