博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux定时备份mysql(可用)
阅读量:3914 次
发布时间:2019-05-23

本文共 3740 字,大约阅读时间需要 12 分钟。

得到mysql路径ps -ef|grep mysqlusr/bin/mysql 是指:mysql的运行路径 var/lib/mysql 是指:mysql数据库文件的存放路径 usr/lib/mysql 是指:mysql的安装路径//创建备份目录:cd /home  //mkdir backup  //cd backup//创建备份 Shell 脚本vi bkDatabaseName.sh//输入 / 粘贴以下内容:#!/bin/bash/usr/bin/mysqldump -uroot -proot crm > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql#!/bin/bash/usr/bin/mysqldump -uroot -proot crm | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz//脚本执行权限chmod u+x bkDatabaseName.sh//脚本是否可用./bkDatabaseName.sh安装crontab yum -y install vixie-cron//添加计划任务crontab -e//输入以下内容并保存*/1 * * * * /home/backup/bkDatabaseName.sh

vi /opt/mysqlBackup.sh#!/bin/bash# 以下配置信息请自己修改#MySQL备份用户mysql_user="root" #MySQL备份用户的密码mysql_password="root" mysql_host="localhost"mysql_port="3306"#MySQL编码mysql_charset="utf8" #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")backup_db_arr=("db1" "db2") #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹backup_location=/opt/mysql#是否开启过期备份删除 ON为开启 OFF为关闭expire_backup_delete="ON" #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效expire_days=3 # 本行开始以下不需要修改backup_time=`date +%Y%m%d%H%M` #定义备份详细时间backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间backup_3ago=`date -d '3 days ago' +%Y-%m-%d` #3天之前的日期backup_dir=$backup_location/$backup_Ymd #备份文件夹全路径welcome_msg="欢迎使用MySQL备份工具" #欢迎语 # 判断MYSQL是否启动,mysql没有启动则备份退出mysql_ps=`ps -ef |grep mysql |wc -l`mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; thenecho "ERROR:MySQL is not running! backup stop!"exitelseecho $welcome_msgfi # 连接到mysql数据库,无法连接则备份退出mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <
$backup_dir/$dbname-$backup_time.sql.gz`flag=`echo $?`if [ $flag == "0" ];thenecho "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"elseecho "database $dbname backup fail!"fi doneelseecho "ERROR:No database to backup! backup stop"exitfi# 如果开启了删除过期备份,则进行删除操作if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;``find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`echo "Expired backup data delete complete!"fiecho "所有数据库备份成功!谢谢你!!"exitfi 2、修改shell脚本属性,赋予执行权限chmod 600 /opt/mysqlBackup.shchmod +x /opt/mysqlBackup.sh3、定时执行脚本vi /etc/crontabvi /var/spool/mail/root 可查看脚本执行日志MySQL恢复use 数据库名字;mysql> source d:/myprogram/database/db.sql; //windowsmysql>source /home/backup/DatabaseName_20190619_165719.sql//linux注意全路径mysql -u uroot -p crm < backup.sql //此方法没成功(我没成功,不代表你们不成功) 用户名 数据库名 备份sql分 时 日 月 星期(*号释义)01 * * * * /root/mysqlBackup.shvi /etc/crontab //在最后一行crontab -e //这个也行参考网址:https://www.cnblogs.com/LHXW/p/9730297.html
5      *       *         *     *     ls             指定每小时的第5分钟执行一次ls命令30     5       *         *     *     ls             指定每天的 5:30 执行ls命令 30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令 30     6       *         *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1, 以此类推,                                     也可以用英文来表示,sun表示星期天,mon表示星期一等。]30     3       10,20     *     *     ls             每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]25     8-11    *         *     *     ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]*/15   *       *         *     *     ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]30     6       */10      *     *     ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]                                              每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件50     7       *         *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

 

你可能感兴趣的文章
多线程并发如何高效实现生产者/消费者?
查看>>
学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
查看>>
IdentityServer4系列 | 简化模式
查看>>
如何在 C# 中使用 AutoMapper
查看>>
BCVP开发者说第4期:Remember.Core
查看>>
Entity Framework Core 5中实现批量更新、删除
查看>>
小试YARP
查看>>
如何使用 C# 中的 HashSet
查看>>
api-hook,更轻量的接口测试工具
查看>>
一个情怀引发的生产事故(续)
查看>>
做架构也得讲武德
查看>>
PHP大势已去,PHP宝藏可为我所用
查看>>
asp.net core 集成 prometheus
查看>>
如何在 .NET 中使用 Redis缓存
查看>>
C#阻塞队列BlockingCollection
查看>>
在传统行业做数字化转型之业务篇
查看>>
如何在 C# 中使用 RabbitMQ
查看>>
一套标准的ASP.NET Core容器化应用日志收集分析方案
查看>>
如何使用 C# 扩展方法
查看>>
C#如何回到主线程,如何在委托指定线程执行
查看>>