mysql 定时备份任务

备份方案:
本地备份并同步至远程服务器,保留30天数据


1. 本地数据库备份,备份数据库gold_ecooy,naiang
#!/bin/bash
#xliang
#Created Time: 2018-12-17
#File Name : backup_databases.sh
# 利用mysqldump工具进行数据库备份,与crontab一起使用

BAK_PATH=/backup_databases
DB_NAME=(gold_ecooy naiang)

for i in ${DB_NAME[@]}
do
  if [ ! -d "$BAK_PATH/$i" ];then
    mkdir -p $BAK_PATH/$i
  fi

  mysqldump -uroot -p"MnfYeFxxxxx" --databases $i | gzip > $BAK_PATH/$i/$i`date "+%Y%m%d%H%M%S"`.sql.gz
done

find $BAK_PATH -mtime +30 -name "*.sql.gz" -exec rm -rf {} \;


2. 本地rsync 配置
# echo "cxxxxxj666" > /etc/rsyncd.secrets    # 名字自定义,cxxxxxj666为rsync服务端配置的用户名为db的密码,不需要用户名
# chmod 600 /etc/rsyncd.secrets
# rsync --daemon                             # 以守护进程开启,如果提示没有配置文件touch /etc/rsyncd.conf即可
# echo "rsync --daemon" >> /etc/rc.local

3. 配置计划任务,数据库20分钟备份一次,30分钟同步一次远程服务器
# cronta -e
*/20 * * * * /backup_databases/backup_databases.sh >/dev/null 2>&1
*/30 * * * * rsync -avh --delete --progress --exclude 'backup_databases.sh' --password-file=/etc/rsyncd.secrets /backup_databases/ [email protected]::db01 >/dev/null 2>&1


4. 远程备份服务器配置
4.1 rsync配置文件
# cat /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
ignore errors
read only = no

transfer logging = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

[db01]
comment = database_bak_7.75.194.229
path = /databases_bakup/7.75.194.229
auth users = db
secrets file = /etc/rsyncd.secrets
host allow = 7.75.194.229/32
#host allow = *
list = false

4.2 rsync 密码文件
# echo "db:cxxxxxj666" > /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets
# rsync --daemon
# echo "rsync --daemon" >> /etc/rc.local

4.3 恢复数据库
mysql> use gold_ecooy;
mysql> source /home/gold_ecooy.sql

 

 

猜你喜欢

转载自www.cnblogs.com/xl999/p/10198053.html