linux下shell编程之mysql备份(适合初学者)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

1,shell常见变量解析:

    $0 当前脚本的名称

    $n 当前脚本的第n个参数

    $* 当前脚本的所有参数(不包括程序本身)

    $# 当前脚本的参数个数(不包括程序本身)

    $?命令或程序执行完成后的状态,一般返回0表示成功。

    $UID当前用户的ID

    $PWD当前所在的目录

    -ne 不等于

    -eq 等于


2,自动备份mysql脚本思路

    ①,备份DB的命令

        mysqldump -h127.0.0.1 -uroot -p123456 du >du_`date +%y%m%d`.sql

    ②,备份的机制

    ③,备份的目标和库

    ④,定期删除多少天以前的数据


   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
#auto backup mysql datebases.
#by 2017
#define DB info PATH
 
SQL_CMD= "/usr/bin/mysqldump"
SQL_HOST= "127.0.0.1"
SQL_USR= "root"
SQL_PWD= "123456"
SQL_DB= "du"
SQL_DIR= "/data/backup/`date +%y%m%d`"
 
#判断是否为root用户
if  [ $UID - ne  0 ]; then
     echo  "only use root to exec."
     exit 
fi
 
#判断该路径是否存在,不存在就创建一个
if  [ ! -d $SQL_DIR ]; then
     mkdir  -p $SQL_DIR
fi
 
#备份数据库
$SQL_CMD -h$SQL_HOST -u$SQL_USR -p$SQL_PWD $SQL_DB >$SQL_DIR/$SQL_DB.sql
 
#判断是否备份成功,成功打印出来路径
if  [ $? - eq  0 ]; then
     echo  "Backup mysql already successful."
     echo  "Backup path:$SQL_DIR"
else
     echo  "Backup mysql failed."
fi
 
#删除30天以前的备份文件
cd  $SQL_DIR/../ ;  find  . -mtime +30 - exec  rm  -rf {} \;
echo  "Done"
 
#把脚本加到crontab任务计划里
grep  "mysql"  /var/spool/cron/root  >>  /dev/null
 
if  [ $? - ne  0 ]; then
     echo  "0 0 * * * /bin/bash /root/shell/mysql.sh > /tmp/mysql.log 2>&1"  >> /var/spool/cron/root
     /etc/init .d /crond  restart
fi




wKioL1lZ5uagVze4AAQF1aT1ixQ418.png


本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/1944062


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
63 28
|
2月前
|
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
133 32
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
2月前
|
Linux编程: 在业务线程中注册和处理Linux信号
本文详细介绍了如何在Linux中通过在业务线程中注册和处理信号。我们讨论了信号的基本概念,并通过完整的代码示例展示了在业务线程中注册和处理信号的方法。通过正确地使用信号处理机制,可以提高程序的健壮性和响应能力。希望本文能帮助您更好地理解和应用Linux信号处理,提高开发效率和代码质量。
66 17
|
2月前
|
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
65 26
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
200 8
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
310 7
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
129 0
【Linux】shell编程基础(超详细,入门看这一篇就够了)(上)
【Linux】shell编程基础(超详细,入门看这一篇就够了)
916 0
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
117 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等