自动任务
vim /etc/crontab
00 02 * * * root /home/backup.sh >/dev/null 2>&1
--------------------------------------------------------------------------------
备份脚本
#!/bin/bash
#set -xecho -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 "数据库备份完成"