linux数据库和文件夹定时备份删除

Posted xiewenda8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux数据库和文件夹定时备份删除相关的知识,希望对你有一定的参考价值。

linux数据库和文件夹定时备份删除

写shell脚本 作为定时执行的备份mysql数据库文件和文件夹文件

1.mysql 数据导出和打包备份 mysqlback.sh

#!/bin/sh 
# File: /root/mysqlback.sh
# Database info 
DB_NAME="test" 
DB_USER="username" 
DB_PASS="password"

# Others vars 
BIN_DIR="/usr/local/mysql/bin" 
BCK_DIR="/data/backup/mysql" 
DATE=`date +%Y%m%d_%H:%M:%S`

# TODO 
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DATE.db.gz

2.文件夹备份和删除之前备份脚本 dirback.sh


#!/bin/sh 
# File:/root/dirback.sh
#备份文件 
#定义今天的时间作为文件的名
now =`date %Y%m%d_%H_%M_%S`
#文件要备份到的位置
backpath=/data/mybackup/
#要备份的文件路径
respath =/root/tomcat/app
tar -zcvf /$backpath/$now.bak.tar.gz $respath

#删除之前备份的文件
if [ `whoami` != 'root' ];then
        echo "Must be root run this scripts!!" >> /var/log/backup/messages
        exit
fi
#这里定义删除一天之前的时间,也就是备份完了删除上一天备份的数据
ago=`date -d "-1 day" +%Y%m%d`
if [ ! -d $backpath ];then
        echo "This path [$$backpath] not exist, please check." >> /var/log/backup/messages
        exit
fi
for i in `ls $backpath`
do
# Get datestamp and check it. For example: 20160526_11_00_00.bak.tar.gz
        datestamp=`echo $i | awk -F'_' 'print $1'`
        check=`echo "$datestamp" | grep "^[0-9]\\8\\$"`
        if [ "$check" != '' ];then
                # Remove old files.
                if [ "$datestamp" -lt "$ago" ];then
                        /bin/rm -rf $backpath/$i
                fi
        fi
done

3.执行命令授权
chmod 777 /root/mysqlback.sh
chmod 777 /root/dirback.sh
corntab -e
0 5 * * * sh /root/mysqlback.sh
1 5 * * * sh /root/dirback.sh

以上是关于linux数据库和文件夹定时备份删除的主要内容,如果未能解决你的问题,请参考以下文章

linux定时备份MySQL数据库并删除七天前的备份文件

mysql 在linux下如何进行指定的数据库定时备份与删除XX天以前的备份文件?

Linux实现定时备份MySQL数据库并删除30天前的备份文件

商城系统在linux系统中定时备份MySQL数据库并删除七天前的备份文件

Linux 定时备份数据库并删除 N 天以前的数据

Linux 定时备份数据库并删除 N 天以前的数据