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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
关系型数据库 MySQL Unix
linux优化空间&完全卸载mysql——centos7.9
linux优化空间&完全卸载mysql——centos7.9
49 7
|
10天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
22 0
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
15 5
|
2天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
2天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
2天前
|
Linux Shell 程序员
【Linux】权限(shell运行原理、概念,Linux权限)
【Linux】权限(shell运行原理、概念,Linux权限)
8 2
|
2天前
|
存储 运维 Java
Linux笔记02 —— Shell补充
Linux笔记02 —— Shell补充
27 2
|
2天前
|
安全 Linux Shell
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
12 1
|
2天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
10 3
|
8天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解