• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
IT联盟之家-ithome8
博客园    首页    新随笔    联系   管理    订阅  订阅
mysql在liunx下面的自动备份

由于系统基本开发完成,为了保证数据安全,需要将数据库自动备份,以下是实现自动备份的步骤:

一、在本地自动备份数据库

  1. 使用mysql自带的服务mysqldump实现自动备份,首先使用vim命令编辑以下命令并且保存    

#!/bin/bash

DB_USER='***' 
DB_PASSWORD='*******'
DB_NAME='******'

BACKUP_DIR='/backup'
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}-$(date +%Y%m%d-%H%M%S).sql"

mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

find $BACKUP_DIR -type f -mtime +30 -name '*.sql' -exec rm -f {} \;

  其中,DB_USER是mysql的用户名,DB_PASSWORD 是数据库密码,DB_NAME数据库名称,BACKUP_DIR是备份的目录, BACKUP_FILE是备份的文件名,此处使用了数据名称+当前的日期和时间来命名,最后一个命令是删除30天以前的备份文件

  注意:如果使用VIM编辑命令,在命令模式下输入:wq回车即可退出保存,vim默认为普通命令模式,按ESC键可以切换模式,也可以在本地编辑好文件然后使用xftp等工具上传到指定目录

  2. 使用下面的命令将备份的脚本文件设置为可执行  

chmod +x /backup/backup_mysql.sh

  3. 使用crontab设置脚本自动运行时间,类似windows中的自动任务,如果没有安装crontab需要先安装才可以使用,我是使用

  • yum install crontabs命令安装的,不同的操作系统有所区别可以查询一下,安装完成后使用命令 crontab -e 编辑 自动任务执行命令,我的命令如下:
0 0,6,13,22 * * * /backup/backup_mysql.sh

  表示每天0、6、13、22点0分执行备份命令,规则与CronExpression有点类似,命令格式如下:

    分 时 日 月 周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示

    第2列表示小时1~23(0表示0点)

    第3列表示日期1~31

    第4列表示月份1~12

    第5列标识号星期0~6(0表示星期天)

    第6列要运行的命令

    星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。

    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。

    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

   执行脚本保存后,等待时间到了即会自动执行备份任务。

二、在其它服务器上自动备份数据库,方法与在本地备份其实是差不多的,只是增加一个将备份文件复制到其它服务器的操作,我这里使用了openssh进行文件复制,openssh,主要用于远程登录服务器,类似于windows的Telnet服务,但是openssh,相对Telnet来说,OPENSSH更为安全

 

posted on 2023-07-24 17:38  IT之家  阅读(49)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3