Linux下mysql备份

来源:互联网 发布:加内特2004季后赛数据 编辑:程序博客网 时间:2024/06/05 23:50

自动任务

vim /etc/crontab

00 02 * * * root /home/backup.sh >/dev/null 2>&1

--------------------------------------------------------------------------------

备份脚本

#!/bin/bash

#set -x

echo -e "此脚本的用途是备份mysql服务器上的 [database]数据库."


name=[dbuser]
pass=[dbpassword]
DATE=`date +%Y%m%d`
backupdir="/home/ykx/mysql.backup"
achivedir="/data/mysql_backup_achive"
gzdumpfile="$DATE.sql.gz"
dbname=[database]


#检测完全备份目录是否存在,如果不存在就创建。
if [ ! -d $backupdir ]; then
    echo "完全备份目录不存在,开始创建......."
    /bin/mkdir $backupdir
fi


if [ ! -d $achivedir ]; then
    echo "存档备份目录不存在,开始创建......."
    /bin/mkdir $achivedir
fi


cd $backupdir


#完整备份
echo "数据库备份中......."
mysqldump --flush-logs -u$name -p$pass --skip-lock-tables --quick $dbname sys_permission_principaloperation >$achivedir/sys_permission_principaloperation_`date +%F`.sql
mysqldump --flush-logs -u$name -p$pass --skip-lock-tables --quick $dbname | gzip > $backupdir/$dbname.$gzdumpfile
#存档
cp $backupdir/$dbname.$gzdumpfile $achivedir


# 删除5天前的备份文件
find $backupdir -name "$dbname*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1


echo "数据库备份完成"
0 0
原创粉丝点击