首页 > 数据库 >一文教你学会使用Cron表达式定时备份MySQL数据库

一文教你学会使用Cron表达式定时备份MySQL数据库

时间:2023-10-24 22:31:33浏览次数:26  
标签:-% name 备份 Cron MySQL backup 数据库 dir

各位小伙伴大家好,今天我就来讲述一下作为一个运维,如何解放自己的双手去让服务器定时备份数据库数据,防止程序操作数据库出现数据丢失。

mysql_dump_script.sh脚本文件

#!/bin/bash
 
#保存备份个数,备份7天数据
number=7
#备份保存路径  路径名可自定义
backup_dir=/data/backup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=your_username
#密码  自己的数据库密码
password=your_password
#将要备份的数据库 
database_name=your_database_name
 
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then    
    mkdir -p $backup_dir;
fi
 
#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#变量写法  本实例采用变量写法,这样增强脚本可移植性、可读性,后期维护时只需修改变量名即可     
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql
 
#写创建备份日志
echo "创建数据部备份文件 $backup_dir/$database_name-$dd.sql" >> $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 "删除过期本份文件 $delfile" >> $backup_dir/log.txt
fi

写好数据库备份脚本了,该如何将服务器每天定时去执行了,这里就不得不说到服务器自带的cron表达式了,我们可以执行crontab -e来编辑我们数据库脚本执行频率。

0 0 * * * /develop/work/mysql/mysql_dump_script.sh

上述cron表达式为每天0点定时备份MySQL数据库,这样就不用怕数据库被删除啦。

优号推荐

公众号智享学习 专注分享软件开发全生态相关技术文章视频教程资源、热点资讯等,如果喜欢我的分享,给

标签:-%,name,备份,Cron,MySQL,backup,数据库,dir
From: https://blog.51cto.com/u_14725510/8010956

相关文章

  • MySQL约束条件和查询关键字
    1.约束条件约束条件(在数据类型的基础上在进行约束)1.unsigend#只能是正数不能有负数比如年龄2.zerofill#零填充比如int类型可以用零填充来显示3.default#默认值在不填写的情况下使用默认值比如性别默认为男4.notnull#非空5.u......
  • MySQL 事务的四大特性;ACID靠什么保证的?事务的隔离级别有哪些?MySQL 的默认隔离级别是什
    一、MySQL事务的四大特性原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consistency):指在事务开始之前和事务结束以后,数据不会被破坏,假如A账户给B账户转10块钱,不管成功与否,A和B的总金额是不变的。隔离性(Isolation):......
  • Docker系列---【mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?】
    mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?1.问题描述为了快速搭建数据库,我使用了docker搭建数据库,由于服务器资源紧张,我想先把mysql容器停掉,启动jenkins容器,使用完之后再停掉jenkins,启动mysql,结果由于服务器资源有限,服务器卡死了,无法远程连接了,没办法,我......
  • mysql 备份文件.xbstream 恢复
    数据库备份文件的恢复1.可通过xtrabackup工具恢复,官方下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/选择对应版本安装注意:要选择和数据库版本对应的工具2.全量恢复#全备文件:full_backup.xbstream#恢复mysql数据文件目录:/rds/mysql#恢复全备xbstream......
  • docker上安装mysql
    docker上安装mysql1、拉取镜像dockerpullmysql:5.7.26 2、运行容器dockerrun--namemysql-p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456-dmysql:5.7.262.1 查看mysql容器:dockerps|grepmysql2.2进入容器:dockerexec-itmysql/bin/bash ......
  • mysql磁盘选择
    物理服务器:塔式工作站机架式——放在机柜上   1U  2U     4.4厘米内存:ECC纠错内存(建议2-3倍cpu核心数量)主板:不关心硬盘:SATA-III、SATA、SAS、GT-BT、Fc、SSD(sata)、pci-essd(第二好)、Flash(性能最好,但是寿命短,价格贵)电源:双电源(型号一样,热插拔,断掉一路电......
  • 通过Docker搭建Debezium同步MySQL的数据变化
    Debezium是红帽开发的一款CDC产品,和阿里的Canel类似,都是同步binlog,不过强大了一点点。为了不再麻烦,下面称之为dbz。达拉崩吧斑得贝迪卜多比鲁翁...dbz的搭建依赖很多中间件:首先要有个MySQL库,dbz来读取数据库binlog(和数据库当前快照);读到后发给kafka,与kafka通信的叫connector;kaf......
  • 查看mysql的cpu及内存占用情况
    命令:psaux可查看服务器下所有进程的cpu和内存  查看单独某个进程的cpu和内存,需要加grep进行搜索,如下:命令:psaux|grepmysql可查看mysql的CPU和内存占用情况,如图cup占用0.6  内存占用14.3 ......
  • MYSQL
    忍者安全测试系统github.com/Audi-1/sqli-labs基础知识请求方式GET:利用数据包注入,且注入语句接在url后时,空格用+或者%20替代,这样才能转义为空格www.xxx.com/index.php?id=1很有可能等于www.xxx.com/?id=1,他们指向同一个文件。即www.xxx.com/?id=1也是可以注入的POST:www.......
  • php-pdo-mysql扩展
    #安装依赖包yuminstallm4yuminstallautoconf#进入对应版本的php安装包的ext/pdo_mysql目录,如下cd/usr/local/src/php-7.4.8/ext/pdo_mysql#在ext/pdo_mysql目录执行phpize/usr/local/php/bin/phpize#执行configure,其中:#--with-pdo-mysql为mysql的安装路径./config......