前言
在工作中,有一些非常简易的非标准服务器,只有一个硬盘,为了防止mysql的数据库
丢失,则需要先把mysql中的数据导出,然后上传到其它的备份服务器中。
这里记录一下现行的方案。
使用mysqldump进行备份,shell脚本如下(数据是脱敏的):
#!/bin/bash
user="root" #登录MySQL的用户名
my_pass="123456" #用户名密码
my_db1="test1" #你需要备份的数据库名称
bf_dir="/opt/backups/mysql/" #备份文件的保存位置
bf_cmd="/usr/bin/mysqldump" #mysqldump命令的跟目录
bf_time="$(date +%Y%m%d-%H%M)" #备份的时间
NAME_1="$my_db-$bf_time" #备份文件的名称加时间
cd $bf_dir #切换到目录
#mysqldump备份的格式:mysqldump [选项] --databases 库名 > /备份路径/备份文件的名称
"$bf_cmd" -u "$my_user" -p"$my_pass" --databases "$my_db1" >"$NAME_1".sql
#使用tar打包备份 --remove打包并删除源文件
#&>:将正确信息或错误信息放到
#tar zcf "$NAME_1".tar.gz "$NAME_1".sql --remove &> /dev/null
# 如果可以,上传到公司的某个文件备份服务器上。或者共享文件夹。或者使用scp。
使用shell脚本,将此文件scp到其它的机器人以此作为备份。
#!/usr/bin/expect -f
spawn scp -r -P 65533 mysqlbackup moss@10.10.160.20:~/
expect "*password:"
send "123456\r"
expect eof
吐槽:
TNND,为什么有这么多特殊情况??每位甲方的情况都不一样。我也想当甲方 ( -_- )