Ubuntu定时备份MySQL数据库并备份至远程服务器

【需求】每日0点,自动备份A服务器上MySQL的某数据库数据,并将备份文件备份至B服务器上。

【思路】编写备份脚本→配置定时任务

【实现步骤】

  1. 在A服务器上编写备份脚本

    #!/bin/bash
    
    #设置mysql的备份保存目录
    
    folder=/home/backup/database
    
    cd $folder
    
    day=$(date +%Y%m%d)
    
    #创建名称为当前日期的文件夹
    
    mkdir -p "$day"
    
    cd $day
    
    #数据库服务器ip
    
    host=A服务器IP
    
    #用户名
    
    user=root
    
    #密码
    
    password=root密码
    
    #要备份的数据库名
    
    db=backupdb
    
    
    #执行备份语句,备份文件名称为backupdb.sql
    
    mysqldump -h$host -u$user -p$password $db > ./backupdb.sql
    
    
    #备份数据至B服务器,名称为backupdb+当日日期.sql
    
    scp backupdb.sql B服务器用户名@B服务器IP:/opt/data/platform-data/backupdb$day.sql

     

  2. 执行脚本,输入B服务器密码(scp时需要),可执行成功,实现数据备份并将文件拷贝至B服务器。
    但是如果想要定时执行,那么就没办法每次输入密码,所以需要配置下设置scp自动输入密码,参见:https://jingyan.baidu.com/article/90bc8fc824e2dab752640c3f.html
    配置好后,就可以无需密码直接成功执行脚本了。
  3. 配置定时任务
  • 输入service cron status查看服务运行状态。
  • sudo vim /etc/crontab,将新的任务写入文件(这里的cron表达式是每分钟执行一次)

  • 最后保险起见,sudo service cron restart重启cron服务。

若出现不执行的情况,可以查看cron的日志,tail -f /var/log/cron.log

若没有这个日志文件,需开启日志(sudo vi /etc/rsyslog.d/50-default.conf,将cron.*取消注释)后,执行service rsyslog restart重启,即可正常查看日志,排查问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值