服务器运维 - 同服务器多数据库自动定时备份脚本

本脚本支持多数据库压缩备份

1.新建文件 mysql_data.sh

内容如下:

#!/bin/sh
DUMP=/www/wdlinux/mysql/bin/mysqldump       #mysqldump的路径,不知道的可以全局搜索一下  find / -name mysqldump
OUT_DIR=/www/web/xxxx_com/public_html/dbbak        #备份文件的目录,没有提前建好
DB_NAME=("db_test1" "db_test2")        #要备份的数据库名字 数组形式
DB_USER=root                                      #数据库登录名
DB_PASS=password                             #数据库登陆密码
HOST=127.0.0.1                                    #服务器ip
USE=root                                                #用户
DATE=`date +%Y%m%d%H%M`           #当前时间

# 循环备份多个数据库
for dbname in ${DB_NAME[@]}
do
    OUT_SQL="mysqldata_bak_${dbname}_${DATE}.sql.gz"     #备份出来的sql文件名
    $DUMP  -u$DB_USER -p$DB_PASS $dbname | gzip -c  >$OUT_DIR/$OUT_SQL
done

以上内容根据自己实际情况修改参数,

上传脚本到服务器

2.ssh root@xxx.xxx.xxx.xxx 登录远程服务器

3.将脚本设置成可执行的文件类型(chmod +x的意思就是给执行权限)
      chmod +x /路径/mysql_bak.sh

4.添加定时任务  crontab
        crontab -e
        添加如下命令  (不带bash -x时没有触发任务)
        30 1 * * *  bash -x  /路径/mysql_bak.sh  

计划任务实例(以下路径是存放脚本的地址,根据自己实际情况修改):
01 03 * * * bash -x /www/web/xxx_com/public_html/dbbak/mysq_data.sh

查看计划任务并编辑:crontab -e
查看计划任务:crontab -l

附crontab说明:
minute hour day-of-month month-of-year day-of-week commands  
分钟    小时   天              月            星期      要执行的命令
前面五个参数中间用空格隔开,最后是要执行的命令。  
合法值为:00-59 00-23 01-31 01-12 0-6 (0 is sunday)

5 重启定时任务
        service crond restart

附1:删除太久之前的数据备份脚本(以下是保留最近一个月的备份脚本)

DAYS=30 #过期天数
BACKUP_DIR=/www/web/xxxx_com/public_html/dbbak    #(这个文件和上面备份的文件一致)
#删除过期的文件
find $BACKUP_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;        #删>除30天前的备份文件(注意:{} \;中间有空格)


附2:恢复备份命令
       1.解压缩
           gunzip   备份文件名
       2.还原数据库
           mysql -u root -p datapase < 备份文件名

桌面备份恢复到数据库db_test1(本地测试用用户名:root 密码:root):
mysql -u root -proot db_test1<C:\Users\Administrator\Desktop\mysqldata_bak_202103230301.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值