linux查看mysql备份方式(Linux下Shell脚本简单实现Mysql全量备份)
linux查看mysql备份方式(Linux下Shell脚本简单实现Mysql全量备份)定时执行该shell脚本 crontab -e 0 1 * * * /home/mysql-backup.sh好了,大致就这样了。这里如果不知道怎么rsync同步的可以自行百度下,网上教程一堆,也比较简单,当然,也可以使用方法。3、同步之后,保留30天数据库(可自行设置任意天数)#! /bin/bash #by mishen BAKDIR="/data/mysql" MYSQLUSR="数据库账户" MYSQLPW="数据库密码" #写入日志文件 LOG=/var/log/mysqlbackup.log NOW=`date %Y-%m-%d-%H:%M` [ ! -d $BAKDIR ] && mkdir -p $BAKDIR echo "-------------Start-------------" >>
图/文:迷神
Mysql的数据库备份是一个搞linux运维的基本技能,备份方法有很多种,我们这里使用一个简单的方法,利用mysqldump这个工具,结合shell脚本简单实现mysql自动全量备份 rsync异地备份功能。
大致思路如下:1、先备份数据库,可以指定一些数据库(可压缩)
2、基于ssh免密登录,利用rsync实现异地备份。
3、同步之后,保留30天数据库(可自行设置任意天数)
执行代码如下:#! /bin/bash
#by mishen
BAKDIR="/data/mysql"
MYSQLUSR="数据库账户"
MYSQLPW="数据库密码"
#写入日志文件
LOG=/var/log/mysqlbackup.log
NOW=`date %Y-%m-%d-%H:%M`
[ ! -d $BAKDIR ] && mkdir -p $BAKDIR
echo "-------------Start-------------" >>$LOG
echo "Start at `date`" >>$LOG
#备份3个数据库
for db in mydb1 mydb2 mydb3
do
mysqldump -u$MYSQLUSR -p$MYSQLPW $db | gzip > $BAKDIR/$db-$NOW.sql.gz
if [ $? == 0 ];then
echo "$NOW--$db backup succeeded!" >> $LOG
else
echo "$db backup failed!" >> $LOG
fi
done
#利用 rsync 同步远程服务器
rsync -az --delete /data/mysql/* root@xxx.xxx.xxx.xxx:/mysql/backup
if [ $? == 0 ];then
echo "$NOW Remote rsync succeeded!" >> $LOG
else
echo "$NOW Remote rsync failed!" >> $LOG
fi
#保留30的
find $BAKDIR -type f -mtime 30 |xargs rm -rf
echo "End at `date`" >>$LOG
echo "-------------End-------------" >>$LOG
给脚本命令,比如我常用的mysql_backup.sh,给脚本添加可执行权限
chmod x mysql-backup.sh
设置计划任务定时执行该shell脚本
crontab -e
0 1 * * * /home/mysql-backup.sh
好了,大致就这样了。这里如果不知道怎么rsync同步的可以自行百度下,网上教程一堆,也比较简单,当然,也可以使用方法。