Mysql备份并上传到固定的服务器

Posted 认真生活、快乐工作 - 马云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql备份并上传到固定的服务器相关的知识,希望对你有一定的参考价值。

第一步,备份mysql

back_mysql_db.sh

#!/bin/bash

# 没有则创建
if [ ! -d "/home/wwwroot/default/mysqlbackups" ];then
        mkdir -p "/home/wwwroot/default/mysqlbackups"
fi

# 备份数据库
mysqldump -uroot -p123456 dbname > /home/wwwroot/default/mysqlbackups/dbname_$(date +%Y%m%dH%M%S).sql

# 只保留5天的数据库
find /home/wwwroot/default/mysqlbackups/ -type f -ctime +5 -exec rm -rf {} ;

第二步,将文件夹scp到服务器

scp_back_to_test.sh
需要安装一下expect

yum install expect
#!/usr/bin/expect

set user root
set password 123456
set dir /home/wwwroot/default/
set ip xxx.xxx.xxx
set files [lrange $argv 0 0]

spawn scp -r ${files} ${user}@${ip}:${dir}
expect {  
    "*yes/no*" { send "yes
"; exp_continue}
    "*password:*" { send "$password
"; exp_continue }
}
interact

第三步,配置定时器crontab

30 03 * * * sh /home/cron/back_mysql_db.sh >> /tmp/back_mysql_db.log 2>&1
30 03 * * * /home/cron/scp_back_to_test.sh /home/wwwroot/default/mysqlbackups/ >> /tmp/scp_back_to_test.log 2>&1

每天夜里3点半

第四步, 再来一个定期处理服务器超过三天的sql

clear_old_mysql_db.sh

#!/bin/bash

# 只保留5天的数据库
find /home/wwwroot/default/mysqlbackups/ -type f -ctime +5 -exec rm -rf {} ;
30 3 * * * sh /home/sh/clear_old_mysql_db.sh >> /tmp/clear_old_mysql_db.log 2 >&1

以上是关于Mysql备份并上传到固定的服务器的主要内容,如果未能解决你的问题,请参考以下文章

mysql自动备份并上传至git仓库

Co. - Microsoft - Windows - 通过任务计划,备份本地MySQL,数据上传Linux备份服务器

备份MySQL数据库并上传到阿里云OSS存储

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

SHELL脚本自动化备份MYSQL数据库