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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
297 41
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
389 17
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
116 18
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
339 11
|
4月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
117 4
|
4月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
261 3
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
415 25
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
130 10
|
5月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
89 18
|
消息中间件 存储 缓存
【嵌入式软件工程师面经】Linux系统编程(线程进程)
【嵌入式软件工程师面经】Linux系统编程(线程进程)
262 1