环境:阿里云服务器CentOS7.4 + MySQL5.6

基本思路:

1、编写shell脚本,备份数据库到指定目录下

2、编写Python脚本,把文件上传到OSS

3、把shell脚本和Python脚本添加Linux的crontab定时器,设置定时执行

首先,环境要配置好,Python环境,centos 7 自带Python,一般可以直接使用

查看Python版本:python -V

  

在创建一个目录/opt/backMySQL/xxx,在目录/opt/backMySQL下编写一个shell脚本backup.sh

 #!/bin/sh
cd /opt/backMySQL/xxx
echo "You are in /opt/backMySQL/xxx" Now=$(date +"%Y-%m-%d")
File=fileName-$Now.sql
mysqldump -urooot -ppassword databaseName > $File
echo "Your database backup successfully completed"
#删除昨天的文件
SevenDays=$(date -d -1day +"%Y-%m-%d") if [ -f /opt/backMySQL/xxx/fileName-$SevenDays.sql ]
then
rm -rf /opt/backMySQL/xxx/fileName-$SevenDays.sql
echo "You have delete 1 tays ago bak file"
else
echo "1 days ago bak file not exist"
fi

把第6、12、14行中的fileName替换成你想要的文件名,第7行换成数据库的用户和密码

执行这个脚本,就可以把数据库备份到/opt/backMySQL/xxx目录下了

再编写一个Python脚本backupToOSS.py

# -I- coding: utf-8 -*-
import os
import oss2 path = '/opt/backMySQL/naner_zhongkong/' auth = oss2.Auth('您的AccessKeyId','您的AccessKeySecret')
bucket = oss2.Bucket(auth,'您的Endpoint','您的Bucket名') #获取目录下的所有文件
f_list = os.listdir(path) for i in f_list:
# os.path.splitext():分离文件名与扩展名
if os.path.splitext(i)[1] == '.sql':
fileName = i
bucket.put_object_from_file('remote.txt','content of object')
注意:Python语言缩进有规定语法,不能随意缩进,记住缩进增加只用在以:结束的语句之后,缩进4个空格,而之后必须恢复到之前的缩进格式

执行:python backupToOSS.py

可以把文件上传到OSS上了

设置定时器
crontab -e
表示在每天1:05执行backup.sh、每天1:15执行backupToOSS.py
 
 
定时具体设置参考
 
Linux定时执行Python脚本

Linux(CentOS7)设置自动备份数据库到阿里云OSS的更多相关文章

  1. SQL SERVER 2012设置自动备份数据库

    为了防止数据丢失,这里给大家介绍SQL SERVER2012数据自动备份的方法: 一.打开SQL SERVER 2012,如图所示: 服务器类型:数据库引擎: 服务器名称:127.0.0.1(本地), ...

  2. SQLSERVER 设置自动备份数据库

    1. SQLSERVER 简单的设置 计划任务 进行 备份数据库的操作. 首先需要打开 一些设置 执行 命令如下: sp_configure ; GO RECONFIGURE; GO sp_confi ...

  3. 在linux服务器上自动备份数据库

    脚本如下,没有任何问题: # !/usr/bin/pythonimport osimport timeimport datetimeimport pipesimport glob DB_HOST = ...

  4. linux中FTP自动备份VPS脚本

    服务器多了,网站也越来越多,总觉得不整个备份心里放不下心,并且有好几次rm的操作失误,造成难以挽回的损失.并且大多数的VPS提供商是不提供自动备份功能或者此功能收费价格略高.所以自己还是有必要把这个工 ...

  5. Typora图片与阿里云OSS图床的结合之旅

    图床? 专门用于存放图片,并允许用户通过独一的外链进行特定图片资源的访问 为什么是阿里云OSS(Object Storage Service) 码云开源需要审核,已经不能作为免费的图床使用(2022年 ...

  6. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  7. SQL SERVER 设置自动备份和删除旧的数据库文件

    打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动).启动后点击“ ...

  8. SQL Server数据库设置自动备份策略

    一. 简单介绍 SQL Server自带的维护计划是一个非常有用的维护工具,能够完成大部分的数据库的维护任务. 数据库的备份也是日常工作中非常重要的一个环节.备份的方法非常的多. 今天给大家介绍最简单 ...

  9. [转载]linux下mysql 自动备份

    ySQL :: Linux 下自动备份数据库的 shell 脚本Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其 ...

随机推荐

  1. PHP 中提示undefined index如何解决(多种方法)

    PHP 中提示undefined index如何解决(多种方法) 这篇文章主要介绍了PHP 中提示undefined index如何解决(多种方法)的相关资料,需要的朋友可以参考下 一.相关信息 平时 ...

  2. java中方法调用在内存中的体现

    在java中,方法以及局部变量(即在方法中声明的变量)是放在栈内存上的.当你调用一个方法时,该方法会放在调用栈的栈顶.栈顶的方法是目前正在执行的方法,直到执行完毕才会从栈顶释放.我们知道,栈是一种执行 ...

  3. malloc()函数,calloc()函数,realloc()函数,free()函数

    malloc()函数 头文件:#include <stdlib.h> malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size); [参数 ...

  4. python数据处理与机器学习

    提纲 numpy: #genformtxt import numpy as np #genformtxtdata=np.genfromtxt("genfromtxtdata") # ...

  5. 【Leetcode】【Medium】Simplify Path

    Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...

  6. 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用

    目录 一,安装宝塔面板(V 6.8) 二,使用宝塔安装 Docker,配置阿里云容器服务 三,安装 Rancher (Server) 四,管理 Rancher.添加集群 五,添加 Rancher 应用 ...

  7. grep 满足多个关键字 任意关键字 排除多个关键字

    ① grep -E "word1|word2|word3"   file.txt    满足任意条件(word1.word2和word3之一)将匹配. ② grep word1 f ...

  8. Programming Assignment 1: WordNet

    编程作业一 作业链接:WordNet & Checklist 我的代码:WordNet.java & SAP.java & Outcast.java 这是第二部分的编程作业,因 ...

  9. 关于由ajax返回的数据在for循环中只能取到最后一个数的问题

    关于由ajax返回的数据在for循环中只能取到最后一个数的问题 以上是来自后台的数据格式.从数据中可以看出,里面包含两个商品,每个商品价格分别为:1.98,13.60.这里我要计算两个商品的总价格,但 ...

  10. R中的apply族函数和多线程计算

    一.apply族函数 1.apply  应用于矩阵和数组 # apply # 1代表行,2代表列 # create a matrix of 10 rows x 2 columns m <- ma ...