linux mysql定时自动备份到另一台服务器

        我的linux服务器安装的是宝塔,宝塔里面可以添加定时任务,包括数据库备份

 但是我的宝塔里面只有备份到本机,没有他们说的可以添加ftp或者oss啥的,估计是因为我用的免费版本,专业版本才有远程同步功能;如果数据库备份只备份到本机,当服务器挂了那数据库和备份记录就都没了,所以除了备份本机外,还需要往别的云服务器上也备份一份或者N份才保险。

 而作为白嫖党我不想花钱买专业版,只能自己写个脚本定时同步远程服务器了。

方法我是参考 https://blog.csdn.net/qq_48922459/article/details/122321217 这篇博客,自己写只是记录自己遇到的问题和做个备份;

1.ssh免密登录配置

因为是自动脚本,而用ssh传输文件,正常情况下都要手动输入密码,所以需要配置一下免密登录。公私钥是解决的最好办法,原理看这里:SSH免密登录配置

首先登录原数据服务器,输入命令:

ssh-keygen -t rsa

 运行这句,一直敲击回车,会在 /root/.ssh 目录下生成两个文件,如果用 ftp 查看的文件,这个 .ssh 文件夹是隐藏文件夹,所以 ftp 下面看不到,你要手动输入地址 /root/.ssh 就可以进去了,而我用宝塔是直接显示的。

把 id_rsa.pub 里的内容全选复制,然后登录目标服务器,也是进入 /root/.ssh 文件夹,把刚刚复制的内容粘贴进 authorized_keys 的尾部(authorized_keys 可能没有,自己新建,里面可以有多个 key,互不影响,换一行粘贴就行了)

 保存,这样我们两台服务器的免密登录 ssh 连接就建立好了。

 2.编辑自动备份脚本文件

在数据库所在的服务器新建一个 sh 文件,放在哪里、怎样命名都随意(此处注意!!!不要使用 ftp 右键新建文件来编写 sh 文件,那样编码会出问题,比如新建的文件名后面会多出一个问号“?”,使用命令行vim或vi来新建

mkdir scripts
cd scripts
mkdir backup
vim syncRecordLife.sh

 我新建了这么个文件夹,其中backup是用来放数据库备份文件的,syncRecordLife.sh是我的同步脚本。

#存放备份sql的地方
BACKUP=/www/scripts/backup
#数据库名称
DATABASE=energy
#后缀,用来区分备份文件
DATETIME=$(date +%Y-%m-%d-%H-%M)
echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql"
#导出sql文件到备份文件夹下,-u -p分别输入自己的用户密码,11.11.11.11代表本机的ip
mysqldump -h 11.11.11.11 -uroot -proot --all-databases > ${BACKUP}/$DATABASE-$DATETIME.sql
echo "===导出成功,开始传输==="
#把生成的备份sql传到目录服务器里,22.22.22.22代表目标的ip
scp  ${BACKUP}/$DATABASE-$DATETIME.sql root@22.22.22.22:/data/mysqlAutoBackup
echo "===数据库备份到服务器成功==="

首先执行一下这个脚本:

虽然会报一个错,但是不影响同步,想完美的可以自行百度配置一下;

 可以看到sql文件已经自动生成并同步到目标服务器上去了。

注意,因为windows和linux的编码不同,直接将上述代码复制到sh文件中,可能会出现命令重叠等诡异问题,比如文件路径会变乱七八糟,最好是vim编辑,一句话一句话的粘进去。

3.设置定时任务自动备份

上面的测试没有问题,下面我们设定一个每天 0 点自动执行 sh 脚本,就可以失效每天的自动同步。

首先赋予要执行的 shell 脚本权限,给高一点,不然没法自动执行

chmod 777 /www/scripts/syncRecordLife.sh

直接输入下面语句,vim 会打开一个文件

crontab -e

里面这样写,保存,前面的 02 00 * * * 是 cron 表达式,代表每天 00:02 执行 /data/mysqlAutoBackupTo24/AutoBackup.sh,之所以设置 00:02 是因为避免服务器在 0 点的时候有其他数据同步任务,所以晚一点。cron 表达式语法可以百度学习一下。
 

02 00 * * * sh /www/scripts/syncRecordLife.sh

改完后需要刷新配置才能生效:

service crond reload

结束,功能挺简单,但步骤比较繁琐,需要耐心配置一下才能搞定

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆趣编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值