11.Linux系统:定时任务备份mysql数据库为文件并传输到其他服务器

1. 创建脚本

mysql_dumps.sh内容如下:

#!/bin/bash
# 查找名称为“mysql_mysql”的容器id
CONTAINER_ID=`docker ps  -a | grep "mysql_mysql" | awk '{print $1}' | head -n 1`
MYSQL_USERNAME="root"
MYSQL_PASSWORD="root"
FILENAME_SUFFIX=`date +%Y%m%d`.sql
#备份目录
data_dir="/usr/local/soft/mysql/deploy/backups/sql/"
#查询所有数据库包含prod的数据库
databases=`docker exec -i $CONTAINER_ID  mysql --user=$MYSQL_USERNAME -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)" | grep "prod"`
#回显所有查询出来数据库
echo "生产数据库有:$databases;"
#循环备份数据库输出为.sql文件放到指定目录下
for db in $databases; do
echo "备份$db数据库"
docker exec -i $CONTAINER_ID mysqldump -u$MYSQL_USERNAME -p$MYSQL_PASSWORD --quick -C  --default-character-set=utf8  $db > "$data_dir/$db`date +%Y%m%d`.sql"#将当天备份的所有文件传输到98服务器
echo ---------------------scp to 98server start --------------------
expect -c "spawn scp $data_dir/$db`date +%Y%m%d`.sql  root@192.168.12.98:/usr/local/backups/99mysqlbackups/expect {\"*assword\" {set timeout 300; send \"root@server2\r\"; exp_continue;}\"yes/no\" {send \"yes\r\";}}
expect eof"
echo ---------------------scp to 98server end --------------------doneif [ $? -ne 0 ];then# 任务失败,发送邮件echo -e "执行数据库任务失败" | mail -s '执行数据库任务失败' 234564290@qq.comexit -1fi#删除所有日期超过15天的备份文件
find $data_dir -mtime +15 -name '*.sql' -exec rm -rf {} \;

解释说明:

  • (1) date +%Y%m%d 当天的年月日
  • (2) 执行流程:查找名称为“mysql_mysql“的容器id;查询此容器内所有名称包含prod的数据库;循环遍历这些数据库,将数据导出为.sql文件放到指定目录下;将当天备份的.sql文件传输到98服务器;删除所有日期超过15天的备份文件;

2. crontab创建定时任务

2.1 进入编辑定时任务模式

crontab -e

2.2 输入定时任务命令

#每日凌晨1点执行rm_json_log_file.sh文件
0 1 * * * sh /usr/local/soft/rm_json_log_file.sh 
#每日凌晨2点执行mysql_dumps.sh文件,进行备份数据库
0 2 * * * sh /usr/local/deploy_epower/mysql_redis/mysql/backups/sh/mysql_dumps.sh

2.3 退出编辑模式

ESC #按ESC键退出编辑模式
:wq #键入:wq保存

2.4 重启crontab服务

service crontab restart

2.5 查看定时任务列表

crontab -l

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSDN 每日一练 ★★☆】【动态规划】最小路径和

【CSDN 每日一练 ★★☆】【动态规划】最小路径和 动态规划 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 示例 1&#x…

我的云栖大会之旅:见证云计算创新的15年

云栖大会,曾经是一次不可思议的科技之旅,却如今已见证了我对云计算世界的15年关注和发展。第一次踏上云栖大会之旅,我记得是在2009年。那时的云计算还是一个新生事物,而云栖大会正是其中的奠基石。 我清楚地记得那个炎热的夏天&am…

ant-design-vue select选择框无法显示placehoder

将绑定的对应值设置成undefined <a-selectv-model:value"formState.classification"option-filter-prop"children"allow-clearplaceholder"商户分类"><a-select-optionv-for"item of Object.values(Const.POINTMERCHNANDISE.TYPE…

R -- 体验 stringdist

文章目录 安装使用stringdist :返回列表example stringdistmatrix &#xff1a;返回矩阵example amatch & ain延伸&#xff1a;距离计算公式Hamming distanceLongest Common Substring distanceLevenshtein distance (weighted)The optimal string alignment distance dosa…

“解耦表示学习”+“交互作用(效应)+权衡 (Trade-off)”是什么?

一、解耦表示学习 一个例子说明问题&#xff1a; 假设我们有一组人脸图像。图像中的每张人脸都可能由多种因子组成&#xff0c;如面部表情、发型、眼镜、性别等。解耦表示学习的目标是找到一种表示方法&#xff0c;其中每一部分的表示只对应于一个因子&#xff0c;如一个特征…

UDP服务端和客户端通信代码开发流程

一、UDP通信 TCP&#xff1a;传输控制协议&#xff0c;面向连接的&#xff0c;稳定的&#xff0c;可靠的&#xff0c;安全的数据集流传递 稳定和可靠:丢包重传 数据有序:序号和确认序号 流量控制:稳定窗口 UDP&#xff1a;用户数据报协议 面向无连接的,不稳定的,不可靠,不安…

JMeter的使用,傻瓜式学习【上】

目录 前言 1、JMeter元件及基本使用作用域&#xff08;简述&#xff09; 1.1、基本元件 1.2、作用域的原则 1.3、元件执行顺序 2、JMeter三个重要组件 2.1、线程组 案例&#xff1a; 2.2、HTTP请求 2.3、查看结果树 响应体中&#xff0c;中文乱码解决方案&#xff1…

docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)

GitLab介绍 GitLab是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务&#xff0c;可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。…

学习笔记三十一:k8s安全管理:认证、授权、准入控制概述SA介绍

K8S安全实战篇之RBAC认证授权-v1 k8s安全管理&#xff1a;认证、授权、准入控制概述认证k8s客户端访问apiserver的几种认证方式客户端认证&#xff1a;BearertokenServiceaccountkubeconfig文件 授权Kubernetes的授权是基于插件形成的&#xff0c;其常用的授权插件有以下几种&a…

家庭互动新维度:TikTok的亲子体验

在数字时代&#xff0c;家庭互动的方式正在发生翻天覆地的改变。社交媒体平台TikTok崭露头角&#xff0c;不仅在年轻用户中广受欢迎&#xff0c;还为家庭带来了全新的互动维度。本文将深入探讨TikTok如何成为家庭互动的新元素&#xff0c;以及它如何改变亲子体验。 TikTok&…

“连续的数据类型”与“非连续的数据类型”是什么?

今天读到“不同于以往基于微分的优化思路&#xff0c;基于差分的零阶优化算法更加适合于处理非连续的数据类型&#xff0c;像化学分子的SMILES表示或者多肽的序列表示就是这样的类型。” 特此记录下来 一、连续的数据类型 连续数据类型指的是在其值域内可以任意细分&#xff…

后端神器!代码写完直接调试!

Apipost推出IDEA插件非常省时高效&#xff0c;写完代码直接可以进行调试&#xff0c;而且支持生成接口文档&#xff0c;真是后端神器啊&#xff01; 可以点击下方链接安装更新或在插件商店中搜索安装 下载链接&#xff1a;https://plugins.jetbrains.com/plugin/22676-apipos…

python飞书群机器人通过webhook发送消息

python飞书群机器人通过webhook发送消息 import json import loggingimport requestslogger logging.getLogger(__name__) logging.basicConfig(levellogging.DEBUG)class FeishuTalk:"""飞书群机器人通过webhook发送消息"""def __init__(self…

微课录屏软件哪个好?帮你轻松搞定课程录制

微课作为一种新型的教学方式&#xff0c;因其短小精悍、内容丰富等特点&#xff0c;越来越受到广大师生的喜爱。在制作微课时&#xff0c;选择一款合适的录屏软件显得尤为重要。可是微课录屏软件哪个好呢&#xff1f;本文将详细介绍两款微课录屏软件&#xff0c;并进行全方位对…

【LeetCode算法-07】 翻转整数 问题

翻转整数是指将一个整数从末尾开始&#xff0c;以相反的顺序重新排列它的数字。例如&#xff0c;翻转整数123的结果是321。注意&#xff0c;这个过程只涉及到整数的数字部分&#xff0c;不包括正负号。 下面是如何在Java中实现这个功能&#xff1a; 如果输入的整数是负数&…

21款奔驰GLS450升级23P驾驶辅助 智驾出行

驾驶辅助和自动驾驶的区别就是需要人为去接管&#xff0c;虽然车辆会根据道路自己行驶&#xff0c;弯道上也能居中自动修正行驶&#xff0c;长时间不接管方向盘&#xff0c;系统会提示人为接管&#xff0c;这就是奔驰的23P驾驶辅助系统&#xff0c; 很多车友升级23P驾驶辅助系…

探索数据库世界的奥秘:MySQL初学者必备指南!

数据库开发-MySQL 1. 数据库操作-DQL1.1 介绍1.2 语法1.3 基本查询1.4 条件查询1.5 聚合函数1.6 分组查询1.7 排序查询1.8 分页查询1.9 案例1.9.1 案例一1.9.2 案例二 2. 多表设计2.1 一对多2.1.2 外键约束 2.2 一对一2.3 多对多 1. 数据库操作-DQL 1.1 介绍 DQL英文全称是Da…

高性能渲染——详解Html Canvas的优势与性能

本文由葡萄城技术团队原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 一、什么是Canvas 想必学习前端的同学们对Canvas 都不陌生&#xff0c;它是 HTML5 新增的“画布”元素&#x…

四十一、【进阶】索引使用SQL提示

1、SQL提示使用情景 在使用MySQL时&#xff0c;当一个字段参在于多个索引中时&#xff0c;默认情况下&#xff0c;MySQL会自动选择一个索引&#xff0c;但我们可以指定索引吗&#xff1f;可以忽略某一种索引吗&#xff1f; 答案是可以的。 前提&#xff1a;profession字段已经…

一文详解如何从 Oracle 迁移数据到 DolphinDB

Oracle 是一个广泛使用的关系型数据库管理系统&#xff0c;它支持 ACID 事务处理&#xff0c;具有强大的安全性和可靠性&#xff0c;因此被广泛应用于各种企业级应用程序。但是&#xff0c;随着数据规模的增加和业务需求的变化&#xff0c;Oracle 的一些限制和缺点也逐渐暴露出…