一:ubuntu下自动备份mysql数据库

转载来源:https://jingyan.baidu.com/article/ab0b563097cabac15afa7dbc.html

1、创建保存备份文件的目录:/home/mysql_data

sudo mkdir mysql_data

2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh

touch mysql_databak.sh#创建文件

sudo vi mysql_databak.sh#编辑文件

3、代码如下
#!/bin/sh

DUMP=/usr/bin/mysqldump
OUT_DIR=/home/mysql_data
LINUX_USER=root
DB_NAME=jqg2
DB_USER=root
DB_PASS=123456
DAYS=7 cd $OUT_DIR
DATE=date +%Y%m%d%H%M
OUT_SQL=$DATE.sql
TAR_SQL="mysqldata_bak_$DATE.tar.gz" DUMP -uDB_USER -pDB_PASS DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables>$OUT_SQL
tar -czf TAR_SQL ./OUT_SQL
rm $OUT_SQL chown LINUX_USER:LINUX_USER OUT_DIR/TAR_SQL
find OUT_DIR -name "mysqldata_bak*" -type f -mtime +DAYS -exec rm {} ;

代码解释:

#!/bin/sh

DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径
OUT_DIR=/home/mysql_data #备份文件存放路径
LINUX_USER=root #系统用户名
DB_NAME=jqg2 #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要使用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表要删除7天前的备份,即只保留最近7天的备份 cd $OUT_DIR #进入备份存放的目录
DATE=date +%Y%m%d%H%M #获取当前系统的时间,注意:date写法
OUT_SQL=$DATE.sql #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名 DUMP -uDB_USER -pDB_PASS DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables>$OUT_SQL #执行备份命令
tar -czf TAR_SQL ./OUT_SQL #压缩为备份数据库文件为.tar.gz格式
rm $OUT_SQL #删除.sql格式的备份文件 chown LINUX_USER:LINUX_USER OUT_DIR/TAR_SQL #更改备份数据库文件的所有者
find OUT_DIR -name "mysqldata_bak*" -type f -mtime +DAYS -exec rm {} ; #删除7天前的备份文件,注意:{} ;中间有空格:wq 保存退出
4、修改文件属性,使其可执行

sudo chmod +x /home/mysql_data/mysql_databak.sh

5、修改/etc/crontab

vi crontab 在其文件内添加

45 22 * * * root /home/mysql_data/mysql_databak.sh #表示每天22点45分执行备份
6、重新启动crond使设置生效

service cron stop #停止

service cron start #启动

/etc/init.d/cron restart #重启

7、设为开机启动:

ubuntu系统不用执行这个命令

chkconfig cron on #设为开机启动

二:脚本文件另外写法:

#!/bin/sh
DB_NAME=""
DB_USER=""
DB_PASSWD="" BIN_DIR="/opt/lampp/bin/" # mysql 执行文件目录
TEMP_DIR="/opt/lampp/db_backup/${DB_NAME}/"
BACKUP_DIR="/opt/lampp/db_backup/${DB_NAME}_db_backup/"
DATE=`date +%Y%m%d_%H%M%S` rm -rf ${TEMP_DIR}
[ -d ${TEMP_DIR} ] || mkdir ${TEMP_DIR}
[ -d ${BACKUP_DIR} ] || mkdir ${BACKUP_DIR} #delete files over 10 days
find ${BACKUP_DIR} -mtime +10 -exec rm -rf {} \;
#back db
# 日志选项暂未打开 --flush-logs --master-data=2
${BIN_DIR}mysqldump -u${DB_USER} -p${DB_PASSWD} ${DB_NAME} --lock-all-tables > ${TEMP_DIR}db_backup_${DB_NAME}_${DATE}.sql
cp ${TEMP_DIR}db_backup_${DB_NAME}_${DATE}.sql ${BACKUP_DIR}db_backup_${DB_NAME}_${DATE}.sql

ubuntu下mysql定时备份的更多相关文章

  1. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  2. windows下mysql定时备份

    场景:一套B/S小系统,租用了一个虚拟服务器windows 2003,数据库是mysql,做每天的数据库备份 1.关于windows下的定时任务执行     * 命令说明 - /sc 指定计划类型,取 ...

  3. Linux下mysql定时备份及恢复

    备份 1.数据库定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是sql脚本) /root/backup/script/backup_mysql.sh 2.备份输出路径: /root/backu ...

  4. Ubuntu下的定时备份数据库

    1.编写备份数据库的shell脚本 mysqldump -uUserName -pPassword dbName >/XXX/XXXX/XXXX/fileName_$(date +%Y%m%d_ ...

  5. linux下mysql定时备份

    1. 在服务器上建立备份文件的存放文件夹 sudo mkdir /usr/local/dbbackup 2. 编写备份脚本 vi dbbackup.sh 在里面编写如下内容 mysqldump -ur ...

  6. linux下mysql定时备份,数据保存周期一周

    以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...

  7. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

  8. Ubuntu Server下MySql数据库备份脚本代码

    明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...

  9. Windows下MYSQL自动备份批处理

    windows下MYSQL自动备份批处理 2011-05-04 09:16:45|  分类: mysql|举报|字号 订阅     按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...

随机推荐

  1. go中string类型转换为基本数据类型的方法

    代码 // string类型转基本数据类型 package main import ( "fmt" "strconv" ) func main() { str1 ...

  2. vue 和react中子组件分别如何向父组件传值

    vue子组件和父组件双向传值: 子: Vue.component("childComponent",{ template:`<div><p @click='pos ...

  3. 初步理解React

    1.组件化 在 MV* 架构出现之前,组件主要分为两种: 狭义上的组件,又称为 UI 组件,比如 Tabs 组件.Dropdown 组件.组件主要围绕在交互 动作上的抽象,针对这些交互动作,利用 Ja ...

  4. Matlab 多个版本的安装包下载、安装和激活教程 + 多套数学建模视频教程

    目录 1. 关键词 1.1. 说明 2. 下载地址 2.1. OneDrive高速云盘 2.1.1. 多版本的安装包 2.1.2. 多套数学建模的视频教程 2.2. 百度云 3. 安装教程 1. 关键 ...

  5. linux开启 Sersync 守护进程进行数据同步

    a.配置 Sersync 环境变量 [root@SERSYNC sersync]# echo 'export PATH=$PATH:/usr/local/sersync/bin'>>/et ...

  6. uboot tag存储主要部分代码

    https://www.cnblogs.com/pokerface/p/5217106.html     cmd_bootm.c //传递给内核的参数      int do_bootm (cmd_t ...

  7. generator (2)

    generator 的使用 第一次调用next  时  传参没有任何意义  打印不出来任何结果 function * read(){ let a = yield 1; console.log(a); ...

  8. python利用循环修改list内容

    写这个主意是记录一下今天遇到的问题,两种循环方式,但是只有一种可以修改list的内容 a=[1,2,3,4,5,6] for i in a: i=7 print(a) 以上这种代码a的内容不变,这里特 ...

  9. 理解性能的奥秘——应用程序中慢,SSMS中快(4)收集解决参数嗅探问题的信息

    ---从计划缓存中直接获取查询计划和参数: ), ) SELECT @dbname = 'hydee_连锁', @procname = 'dbo.p_select_ware'; WITH baseda ...

  10. php str_ireplace()函数 语法

    php str_ireplace()函数 语法 作用:字符串替换操作,不区分大小写 语法:str_ireplace(find,replace,string,count)大理石平台规格 参数: 参数 描 ...