首页 > 数据库 >环境变量 位置变量和预定义变量 以及通过脚本实现无人值守备份MySQL数据库

环境变量 位置变量和预定义变量 以及通过脚本实现无人值守备份MySQL数据库

时间:2022-10-16 18:03:05浏览次数:57  
标签:benet 变量 备份 centos02 sh MySQL root cent01 值守

环境变量 位置变量和预定义变量 以及通过脚本实现无人值守备份MySQL数据库_centos

一、环境变量的定义

1)局部环境变量

创建环境变量名为a和b的赋值

[root@centos01]# a=benet
[root@centos01]# b=6.0

调用局部环境变量

beent[root@centos01]# echo $a $b
beent 6.0
[root@centos01]#

2)全局环境变量

创建全局环境变量

[root@centos01]#export c=accp
[root@centos01]# export d=6.0

 调用全局环境变量

[root@centos01]# bash                                       //切换bash
[root@centos01]# echo $C $d //调用环境变量
accp 6.0
[root@centos01]#

3)变量赋值

 调用支持符号的变量赋值

[root@centos01]#  a=benet
[root@centos01]# echo "$a 6.0"
benet 6.0
[root@centos01]#

将命令执行结果赋值给变量名字并获取当前时间年月日赋值 变量名为date

[root@centos01]# date 
2022年 10月 16日 星期日 23:42:42 CST
[root@cent01 ~]# date=`date +%Y%m%d`
[root@cent01 ~]# echo $date
20221016

应用变量将变量名字作为普通字符显示

[root@cent01 ~]# benet='benet $version'
[root@cent01 ~]# echo $benet
benet $version
[root@cent01 ~]#

接受用户输入的内容赋值 变量名为name

[root@cent01 ~]# read -p "请输入名字:" name
请输入名字:bob
[root@cent01 ~]# echo $name
bob
[root@cent01 ~]#

二、位置变量和预定义变量使用脚本

1)使用预定义脚本创建安装apache

创建使用源代码程序安装apache

[root@cent01 ~]# vim install_apache.sh
#!/bin/bash //生明
#email [email protected] //联系方式
echo "挂载云计算光盘:"
mount /dev/cdrom /mnt
ls /mnt
echo "解压源代码程序:"
tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src &> /dev/null
ls /usr/src
echo "切换到源代码程序目录:"
cd /usr/src/httpd-2.2.17
pwd
echo "配置apache并检查apache是否安装成功"
./configuer --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite &> /dev/null
make && make && install && &> /dev/null
ls -ld /usr/local/httpd
echo "优化apache命令检查主配置文件是否出错:"
ls /usr/local/httpd/bin/* /usr/local/bin
httpd -t
echo "启动apache服务:"
/usr/local/httpd/bin/apachectl start
echo "查看运行状态"
cd
echo "显示脚本内容$0:"
echo "显示脚本运行状态$?"
netstat -auptn | grep httpd

运行安装apache脚本

[root@cent01 ~]# chmod + ./install_acpahe.sh                      //添加执行权限
[root@cent01 ~]# ./install_acpahe.sh //执行脚本

创建备份知道位置数据脚本结合显示位置脚本参数应用

 创建备份数据脚本

[root@cent01 ~]# vim taretc.sh
#!/bin/bash
date=`date +%Y%m%d`.tar
tar zcf $date $* &> /dev/null
echo "显示脚本名字$0"
echo "显示脚本运行状态$?"

添加执行权限运行脚本

[root@cent01 ~]# chmod +x taretc.sh
[root@cent01 ~]# sh taretc.sh /etc
显示脚本名字taretc.sh
显示脚本运行状态0
[root@cent01 ~]# ls -ld ./20221017.tar
-rw-r--r--. 1 root root 10777207 10月 17 00:20 ./20221017.tar
[root@cent01 ~]#

2)使用脚本和计划周期备份/etc目录内容

创建脚本并添加执行权限

[root@cent01 ~]# vim taretc.sh
#!/bin/bash
date=`date +%Y%m%d`.tar
tar zcf $date $* &> /dev/null
echo "显示脚本名字$0"
echo "显示脚本运行状态$?"
[root@cent01 ~]# chmod +x taretc.sh

创建计划任务间隔两分钟备份一次/etc目录

[root@cent01 ~]# crontab -e
*/2 * * * * /root/taretc.sh

查看备份数据

[root@cent01 ~]# ls -ld ./20221017.tar
-rw-r--r--. 1 root root 10777207 10月 17 00:20 ./20221017.tar

三、创建数据库并建表插入数据 (需提前安装MySQL)

授权访问MySQL的用户

[root@cent01 ~]# mysql -uroot -p123
mysql> grant all on *.* to 'bob'@192.168.100.20 identified by '123';
Query OK, 0 rows affected (0.01 sec)

创建数据库设计表结构

mysql> create database benet;
Query OK, 1 row affected (0.00 sec)
mysql> create table benet.student (姓名 char(4),年龄 int,电话 char(11),身份证号码 char(18),prima
ry key (身份证号码));
Query OK, 0 rows affected (0.01 sec)
mysql> desc benet.student;
+-----------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------+------+-----+---------+-------+
| 姓名 | char(4) | YES | | NULL | |
| 年龄 | int(11) | YES | | NULL | |
| 电话 | char(11) | YES | | NULL | |
| 身份证号码 | char(18) | NO | PRI | | |
+-----------------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

表里插入数据并查看

mysql> insert into benet.student values ('bob',17,'12345678901','111111111111111');
Query OK, 1 row affected (0.01 sec)
mysql> select * from benet.student;
+--------+--------+-------------+-----------------+
| 姓名 | 年龄 | 电话 | 身份证号码 |
+--------+--------+-------------+-----------------+
| bob | 17 | 12345678901 | 111111111111111 |
+--------+--------+-------------+-----------------+
1 row in set (0.00 sec)

测试手动远程登录备份

[root@cent01 ~]# mysqldump -uroot -p123 --databases benet > ./benet.sql
[root@cent01 ~]# ls -ld ./benet.sql
-rw-r--r--. 1 root root 2137 10月 16 16:35 ./benet.sql
[root@cent01 ~]#

配置备份MySQL服务器

挂载Linux光盘

挂载系统光盘

[root@centos02 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@centos02 ~]#

配置yum仓库

[root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos02 ~]# vim /etc/yum.repos.d/local.repo
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@centos02 ~]#

安装MySQL客户端远程登录MySQL

[root@centos02 ~]# yum -y install mariadb
[root@centos02 ~]# mysql -ubob -p123 -h 192.168.100.10
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.5.22-log Source distribution
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>

创建远程备份MySQL脚本

[root@centos02 ~]# vim backup_database.sh
user="bob" //授权访问MySQL用户
pwss="123" //访问MySQL密码
host="192.168.100.10" //远程访问IP地址
conn="-u $user -p$pass -h $host" //将用户名和地址进行拼接
db="benet" //备份数据库名字
dir="/opt" //备份数据库存储位置
cmd="/usr/bin/mysqldump" //备份数据库命令位置
tima=`date +%F%H%M%S` //备份数据显示时间
name="${db}-$time" //将数据名字和时间进行拼接
cd $dir //切换目录
$cmd $conn --databases $db > ${name}.sql //备份benet数据库
/usr/bin/tsr zcf ${name}.tar.gz ${name}.sql --remove &> /dev/null //对备份数据库进行压缩
[root@centos02 ~]# chmod +x ./backup_databases.sh //添加执行权限
[root@centos02 ~]# sh ./backup_base.sh //执行脚本
[root@centos02 ~]# ls /opt //查看
benet-2022-10-17-17-07-03.tar.gz

创建周期计划任务两分钟备份一次

[root@centos02 ~]# crontab -e
*/2 * * * * /root/backup_database.sh

标签:benet,变量,备份,centos02,sh,MySQL,root,cent01,值守
From: https://blog.51cto.com/u_15831645/5760461

相关文章

  • Mysql 系列 | 性能优化 - 函数调用
    sql性能优化,是代码编写过程中必定要考虑的内容,弄懂性能背后的逻辑,起到事半功倍的效果。今天学习几种常见的简单优化场景。条件字段中调用函数以公司的打卡信息表为例,......
  • Windows10系统命令行设置环境变量
    1.使用set临时设置环境变量用于设置临时环境变量。只在当前命令行窗口中有效。1.1cmd终端#如设置CLASSPATH$setCLASSPATH=D:\program\JavaTrainning\src#查看......
  • MySQL变量的使用
    在mysql文档中,mysql变量可分为两大类,即系统变量和用户变量。但根据实际应用又被细化为四种类型,即局部变量、用户变量、会话变量和全局变量。 一、局部变量mysql局部......
  • MySQL索引介绍
    索引主要是用来提高数据库的查询效率的,它对指定的列或列的集合生成索引,然后可以通过索引来检索目标数据,就像目录一样,缩小了扫描范围,大大提高了查询效率。如果不使用索引,My......
  • mysql80解决不支持中文的问题
    1.查看mysql80字符集showvariableslike'character_set%';2.修改server编码格式在mysql安装目录下找到my-default.ini文件并复制一份改为my.ini,文件内加入如下设置......
  • MySql的学习
    1:什么是数据库:用来存储数据,管理数据(DBDataBase)2:数据库的分类(1)关系型数据库:MySql,SqlServer,DB2,就是表和表之间,行和列之间的关系进行数据存储(2)非关系型数据库:jso......
  • navicat连接mysql数据库提示失败,提示2059错误
    Navicat连接数据库失败,提示2059错误,如下图参考资料发现使用的数据库版本是mysql8版本,不是mysql5.7版本MYSQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_passwo......
  • GO语言sync包与锁:限制线程对变量的访问
    原文:http://c.biancheng.net/view/4307.htmlGo语言中sync包里提供了互斥锁Mutex和读写锁RWMutex用于处理并发过程中可能出现同时两个或多个协程(或线程)读或写同一个......
  • Python MySQL_基础01
    01.示例:使用Python创建MySQL数据库#1.首先创建一个cursor(),然后将SQL命令作为字符串传递给execute()方法importmysql.connectordataBase=mysql.connector.......
  • 【MySQL】实战教程笔记
    序言感谢林晓斌老师,感谢他的教程:https://funnylog.gitee.io/mysql45/MySQL的基础架构主要分为两层服务层连接器:管理连接,验证权限。尽量使用长连接查询缓存:对一个表......