一: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. 20191119PHP.class类练习

    <?phpclass person{ public $name; private $age; public $sex; const WOMAN=0; const MAN=1; function ...

  2. MySQL Server类型的MySQL 客户端的下载、安装和使用

    mysql server 5.5的下载 下载地址:https://dev.mysql.com/downloads/mysql/5.0.html#linux mysql server 5.5的安装 双击 ...

  3. AOS Clustering on one Server

    原文链接:http://www.cnblogs.com/JackyXu1981/articles/1287910.html AOS Clustering on one Server AOS Clust ...

  4. 1. AtomicInteger 、Unsafe 及 CAS方法的整理

    本文摘自: https://blog.csdn.net/fanrenxiang/article/details/80623884 http://ifeve.com/sun-misc-unsafe/ h ...

  5. Linux性能优化从入门到实战:14 文件系统篇:Linux 文件系统基础

      磁盘为系统提供了最基本的持久化存储.   文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构. 文件系统:索引节点和目录项   文件系统是对存储设备上的文件,进行组织管理的机制.组织方式不 ...

  6. 解决 INSTALL FAILED CONFLICTING PROVIDER

    1.现象: 2.产生原因 INSTALL FAILED CONFLICTING PROVIDER 产生的原因通常是因为系统中已经安装的apk的provider中的authorities相同了,导致在安 ...

  7. Linux 性能测试工具 sysbench 的安装与简单使用

    文章目录 Linux 性能测试工具 sysbench 的安装与简单使用        一 背景        二 实验环境            2.1 操作系统            2.2 其他配 ...

  8. CF9D How many trees? (dp)

    这题我想了好久 设 \(f_{i,j}\) 为 \(i\) 结点 \(<=j\) 的方案数 固定根,枚举左右子树,就有: \[f_{i,j}=\sum_{k=0}^{n-1}f_{k,j-1}* ...

  9. html 头部设置

    https://juejin.im/post/5a4ae29b6fb9a04504083cac <head> <meta charset="UTF-8"> ...

  10. 【leetcode】885. Boats to Save People

    题目如下: 解题思路:本题可以采用贪心算法,因为每条船最多只能坐两人,所以在选定其中一人的情况下,再选择第二个人使得两人的体重最接近limit.考虑到人的总数最大是50000,而每个人的体重最大是30 ...