首页 > 数据库 >Ubuntu 设置mysql 自动备份

Ubuntu 设置mysql 自动备份

时间:2024-03-21 16:13:25浏览次数:21  
标签:备份 mysql sh Ubuntu backups backup dir

1、创建备份文件以及备份脚本所在的目录

在根目录下面设置 cd /

mkdir backup

2、修改mysql备份配置文件

这种相比于在将用户名和密码写在bash脚本里面,会更加安全一些。

sudo vim /etc/mysql/conf.d/mysqldump.cnf

mysqldump.cnf文件添加以下内容:

host=127.0.0.1

user=**** # mysql 用户名

password=*** # mysql

3、编写shell脚本, 放在backup方便管理

vim mysql_backups.sh

#!/bin/bash

#保存备份个数,备份15天数据
number=15
#备份数据存放位置
backup_dir=/backup/data/
#日期
dd=`date +%Y-%m-%d-%H:%M:%S`
#mysql导出数据库的命令
tool=mysqldump
#将要备份的数据库
database_name=zxny
 
#如果文件夹不存在则创建
if [ ! -d $backup_dir ]; 
then     
        mkdir -p $backup_dir; 
fi
 
#通过以下拼接成一条mysql导出数据库的命令,备份多个数据库或者全部数据库,可以修改这条命令,具体可参考附录1
#简单写法  mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#$tool -u$username  -p $database_name > $backup_dir/$database_name-$dd.sql
$tool $database_name > $backup_dir/$database_name-$dd.sql
 
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
 
#找出需要删除的备份
delfile=`ls -l -crt  $backup_dir/*.sql | awk '{print $9 }' | head -1`
 
#判断现在的备份数量是否大于$number
count=`ls -l -crt  $backup_dir/*.sql | awk '{print $9 }' | wc -l`
 
if [ $count -gt $number ]
then
      #删除最早生成的备份,只保留number数量的备份
        rm $delfile
          #写删除文件日志
            echo "delete $delfile" >> $backup_dir/log.txt
fi

4、修改备份脚本文件权限

chmod 777 mysql_backups.sh

这里将mysql_backups.sh的权限设置为任何用户可以读、写、执行,具体权限设置可以自行设定。

测试:

./mysql_backups.sh;看会不会出现相应的数据库备份文件

5、配置定时器

修改定时器配置文件crontab:

sudo vim /etc/crontab

crontab文件添加以下内容:

# 每天2点,执行mysql_backups.sh 脚本

0 2 * * * root /backup/mysql_backups.sh

注:"0 2 * * *"表示每天00:02执行,root为户,/backup/mysql_backups.sh指向备份shell脚本文件。

crontab配置完成后,需要重新启动服务:

重新启动(sudo /etc/init.d/cron restart);

标签:备份,mysql,sh,Ubuntu,backups,backup,dir
From: https://www.cnblogs.com/zlfProgrammer/p/18087601

相关文章

  • mysql的my.cnf解释说明
    这个关乎配置文件,需要了解后,对数据库管理有很大的帮助。#***clientoptions相关选项***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选......
  • oracle 还原 .dmp 格式备份文件
     CONNsystem/你设置的密码@你的数据库名字showparametername-----查看你登入的数据库是否是你要导入的数据库---------先创建oracle用户(数据库)createuserorcladminidentifiedbymanager;--创建用户grantdbatoorcladmin;--给orcladmin权限---------创建表空间t......
  • mysql语句优化心得
    一、常用SQL优化处理1.1like查询优化方案like模糊查询形如'%AAA%'和'%AAA'将不会使用索引,但是业务上不可避免可能又需要使用到这种形式查询方式:优化方案一:使用覆盖索引,即查询出的列只是用索引就可以获取,而无须查询表记录,这样也走了索引;优化方案二:使用locate函数或者positio......
  • ubuntu18.04在下载编译Realsense-ros遇到的问题
    要注意的是,我是用小鱼的一键安装ros安装的ros,链接可以参考我的一篇文章开头有:ubuntu18.04系统中运行./build_ros.sh的时候遇到报错-CSDN博客我遇到的问题是csdn上搜不到的问题:CMakeErrorat/opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100(message): ......
  • Node+Vue毕设社区居家养老管理系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在人口老龄化日益加剧的今天,社区居家养老已成为解决老年人养老问题的重要方式。随着社会经济的发展和科技的进步,老年人对于养老服务的需求不再局限于基本的......
  • 【Mysql数据库基础01】去重、连接字符、模糊查询、通配符、检索表的结构信息
    去重、连接字符、模糊查询、通配符、检索表的结构信息1去重distinct2连接字符函数concat(str1,str2,...)3模糊查询3.1like包含3.2通配符3.3betweenand3.4in3.5isnull4安全等于<=>5检索表的结构信息desc6课后练习1去重distinct使用DISTINCT关......
  • MySQL InnoDB Instant schema 变更注意点
    在MySQL8.0.12中为DDL引入了新的算法,在修改表的定义的时候不会阻塞。第一个instant操作是在表的最后增加一个列,这是腾讯游戏团队贡献的。在8.0.29中,官方增加在任意位置增加或删除列的instant操作。本文要讲的是盲目使用该特性会带来的危害。 默认算法从MySQL8.0......
  • 通过Docker安装MySQL数据库
    1.安装Docker首先,确保你的系统上已经安装了Docker。如果还没有安装,可以访问Docker官网查看安装指南。对于大多数Linux发行版,可以使用以下命令安装Docker:sudoapt-getupdatesudoapt-getinstalldocker.io安装完成后,启动Docker服务并设置开机自启:sudosystemctlstart......
  • mysql-存储引擎
    1.mysql的体系结构下面这张图值得注意的是不同的存储引擎的Index不一样,从5.5版本以后存储引擎默认的就是InnoDB了。2.存储引擎 --查询建表语句---默认存储引擎:InnoDBshowcreatetablecourse;--查询当前数据库支持的存储引擎showengines;--创建表my_myisam,......
  • Ubuntu修改root密码
    背景:Ubuntu桌面版本在安装系统时需要创建一个普通用户,安装完成后进入系统也只能使用你创建的用户密码。我们不知道root的登录密码,这个时候需要重启系统进行root密码修改。Ubuntu怎么修改root密码呢?以下是详细的步骤:1、重启你的Ubuntu系统,然后在启动过程中按住Shift键,进入GRUB菜单......