zoukankan      html  css  js  c++  java
  • svn数据库自动备份脚本

    创建一个存放备份数据的路径
    mkdir /data/svnbak -p


    采用shell脚本的方式实现自动备份


    #vim backup.sh


    #!/bin/bash

    log="/data/svnbak/last_add_backed_up.log"   # 添加日志文件,打印开始结束时间,方便查看执行时间
    echo "********************"backup start time: `date -d today +"%Y-%m-%d %T"`"***************">> $log

    cd /data/svnbak
    mkdir `date +%F`
    chmod 755 `date +%F`
    cd  `date +%F`
    ls -l /home/svn-repos | awk '$1~"d"{print$8}' > list #注:/home/svn-repos是svn数据库的路径


    for i in `cat list`
    do
        mkdir /data/svnbak/`date +%F`/$i #注:在另一个路径下创建与数据库相同的目录
    done


    SRCPATH=/home/svn-repos #定义仓库路径
    DISTPATH=/data/svnbak/`date +%F`  #定义备份数据存放的路径;
    echo $DISTPATH
    cat $DISTPATH/list | while read filename
    do
        svnadmin hotcopy $SRCPATH/$filename  $DISTPATH/$filename --clean-logs #注:此处使用hotcopy开始备份
    done


    echo "-------------------backup end time: "`date -d today +"%Y-%m-%d %T"`"-------------------" >> $log


    chown www-data.www-data $DISTPATH -R #注:备份之后修改成与原数据库相同的权限


    #删除10天前的备份
    basedir=/data/svnbak/ #备份的路径
    old_day=`date +%F -d"-10 days"`
    filename=$basedir/$old_day
    rm -rf $filename


    可以把这个脚本添加到计划任务中,实现每个星期六的凌晨1点01分周期性的自动备份,如下内容所示:
    crontab -e

    01 01 * * 6 /bin/bash /root/backup.sh
  • 相关阅读:
    MySQL 5.7 多主一从实现
    从 MySQL 全备的 SQL 文件中抽离出某张表的数据
    KUBERNETES 03:Pod 资源清单
    KUBERNETES 02:基本操作命令
    KUBERNETES 01:说明与安装
    DOCKER 08:搭建本地镜像仓库 Harbor
    DOCKER 07:docker swarm
    DOCKER 06:docker compose
    DOCKER 05:数据持久化
    DOCKER 04:容器资源限制和网络原理
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239751.html
Copyright © 2011-2022 走看看