shell 文件备份脚本

#!/bin/bash

#输入参数:文件名
filename=$1
#源文件目录
directory=/opt/docker/cloud-driver-training/apps
#备份文件目录
backupdir=$directory/backup

#删除备份文件函数(备份文件数量设有有上限,超过上限会删除更早之前的备份文件)
function deleteFiles() {
        if [ -z $filename ]; then
                echo "==========>param filename is null"
                return
        fi
        #列出所有同名文件,按文件更新时间倒序排序
        files=`ls -t $backupdir | grep "$filename"`
        index=1
        #保留的最大备份文件数量
    maxFileCount=3
        for file in $files
        do
        #当前备份文件数量大于最大备份文件数量,则删除历史的备份文件
                if [ $index -gt $maxFileCount ]; then
                        echo "==========>backup files count > $maxFileCount, delete history file $backupdir/$file"
            rm -rf $backupdir/$file
                fi
                index=$[$index+1]
        done
        echo "==========>fileCount:$index"
}

#文件备份函数
function backup() {
       #源文件
    sourceFile=$directory/$filename
    #如果源文件存在,执行备份
    if [ -f $sourceFile ]; then
            backupFile=$backupdir/$filename`stat -c %y $sourceFile | cut -c 1-10`
            echo "==========> moving $sourceFile to $backupFile"
            mv $sourceFile $backupFile
        #备份完后,清除历史备份文件(如果超出最大备份数)
            deleteFiles
    else
            echo "==========> $sourceFile is not found"
    fi
}

echo "==========> do backup"
backup
echo "==========> backup finish"

 

转载于:https://www.cnblogs.com/cocoat/p/7608369.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值