zoukankan      html  css  js  c++  java
  • Shell脚本自动备份数据库

    需求:自动备份数据库

    1、编写脚本

    # mkdir -p /data/scripts

    # vim /data/scripts/auto_backup_mysql.sh

    #!/bin/bash
    # This script is used backup mysql databases
    # Date:20180630
    # Author:Linus
    
    # 不使用变量的数据库备份命令  mysqldump -uroot -ppass123 -h192.168.199.160 --databases bbs > /data/backup/mysql/bbs.mysql
    # 其中 --databases 后面接的是数据库名,即需要备份的数据库名称
    
    # 1、定义数据库链接、目标库信息
    MY_USER="root"              # 数据库的用户名,不是linux系统的用户名
    MY_PASS="pass123"           # 数据库的密码
    MY_HOST="192.168.199.160"   # 数据库的ip地址
    MY_CONN="-u${MY_USER} -p${MY_PASS} -h${MY_HOST}"
    MY_DB1="bbs"
    MY_DB2="aliyun"
    
    # 2、定义备份目录、工具、时间 、文件名主体
    mkdir -p /data/backup/mysql
    BK_DIR="/data/backup/mysql/"
    BK_CMD=`which mysqldump`
    BK_TIME=`date +%Y%m%d-%H%M`
    FILE_NAME_1="${MY_DB1}-${BK_TIME}"
    FILE_NAME_2="${MY_DB2}-${BK_TIME}"
    
    # 3、先导出为.sql文件,然后再压缩(完成后删除原文件)
    cd ${BK_DIR}
    ${BK_CMD} ${MY_CONN} --databases ${MY_DB1} > ${FILE_NAME_1}.sql
    ${BK_CMD} ${MY_CONN} --databases ${MY_DB2} > ${FILE_NAME_2}.sql
    `which tar` zcf ${FILE_NAME_1}.tar.gz ${FILE_NAME_1}.sql --remove &> /dev/null
    `which tar` zcf ${FILE_NAME_2}.tar.gz ${FILE_NAME_2}.sql --remove &> /dev/null

    2、给予脚本执行权限

    # chmod u+x /data/scripts/auto_backup_mysql.sh

    3、设置计划任务,自动执行脚本(如设置每天凌晨3点自动执行脚本)

    # crontab -e

    0 3 * * * /data/scripts/auto_backup_mysql.sh;/sbin/hwclock -w

  • 相关阅读:
    HTML5然还在草案阶段
    简单的JS动态加载单体
    步步为营 C# 技术漫谈 五、事件与委托机制
    .NET简谈脚本引擎系列(一:认识脚本引擎)
    微软一站式示例代码库 6月再次更新14个新示例代码
    CLR(公共语言运行时)到底藏在哪?
    .NET简谈构件系统开发模式
    项目管理理论与实践系列文章索引
    .Net调试技巧
    Lucene.Net
  • 原文地址:https://www.cnblogs.com/relax1949/p/9247661.html
Copyright © 2011-2022 走看看