zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    windows下命令行
    利用border画三角形
    正则
    flex布局
    css笔记
    W3C标准
    SEO相关
    左边固定,右边自适应(解决方案)
    容错性测试的测试点
    Charles安装及使用教程
  • 原文地址:https://www.cnblogs.com/cocoat/p/7608369.html
Copyright © 2011-2022 走看看