sh autolog backup

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值