【学神-RHEL7】1-28-mariadb数据库自动备份和expect的使用

本节所讲内容:

案例1:自动备份Mariadb脚本

 

实战:

1、自动备份mariadb脚本

需要做准备:登录到服务器上

安装mariadb-server

                      开启mariadb-server

[[email protected] ~]# yum-y install mariadb mariadb-server

软件包mariadb   #mariadb数据库Linux下的客户端

软件包mariadb-server#mariadb数据库

[[email protected] ~]#systemctl start mariadb

 

[[email protected] ~]# rpm-qf `which mysql`

mariadb-5.5.41-2.el7_0.x86_64

 

[[email protected] ~]# mysql

Welcome to the MariaDBmonitor.  Commands end with ; or \g.

Your MariaDB connectionid is 2

Server version:5.5.41-MariaDB MariaDB Server

 

Copyright (c) 2000, 2014,Oracle, MariaDB Corporation Ab and others.

 

Type ‘help;‘ or ‘\h‘ forhelp. Type ‘\c‘ to clear the current input statement.

 

MariaDB [(none)]> showdatabases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.01 sec)

 

MariaDB [(none)]>exit;

Bye

 

备份脚本:

说明:

find  . -type f -name *.sql |xargs rm -rf

xargs 构造参数列表并运行命令

 

 

sh  -x  调试脚本

 

自动解压ZIP数据包 脚本

如下脚本为自动解压zip包脚本,仅供参考,可以根据实际情况修改,可以举一反三,应用到其他的应用中。

 

awk -F. ‘{print $2}‘     #awk 列操作

-F.  以.作为分隔符   

print 输入

$2  表示每2列

 

实战:expect实现无交互登录

expect是在tcl基础上创建起来的,它还提供了一些tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作

 

安装expect

[[email protected] ~]# yum -yinstall expect

也可以通过源码包的方式进行安装

源码下载链接

http://jaist.dl.sourceforge.net/project/tcl/Tcl/8.6.4/tcl8.6.4-src.tar.gz

http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

 

使用expect创建脚本的方法

1)定义脚本执行的shell

#!/usr/bin/expect

这里定义的是expect可执行文件的链接路径(或真实路径),功能类似于bash等shell功能

 

2)set timeout 30

设置超时时间,单位是秒,如果设为timeout -1 意为永不超时

 

3)spawn

spawn 是进入expect环境后才能执行的内部命令,不能直接在默认的shell环境中进行执行

主要功能:传递交互指令

 

4)expect

这里的expect同样是expect的内部命令

主要功能:判断输出结果是否包含某项字符串,没有则立即返回,否则就等待一段时间后返回,等待时间通过timeout进行设置

 

5)send

执行交互动作,将交互要执行的动作进行输入给交互指令

命令字符串结尾要加上"r",如果出现异常等待的状态可以进行核查

 

6)interact

执行完后保持交互状态,把控制权交给控制台

如果不加这一项,交互完成会自动退出

 

7)exp_continue

继续执行接下来的交互操作

8)$argv

expect 脚本可以接受从bash传递过来的参数,可以使用 [lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个……参数

 

实战:通过expect实现无交互式ssh远程登录

[[email protected] ~]# vimssh.exp

#!/usr/bin/expect

set ipaddress"192.168.1.69"

set passwd"123456"

set timeout 30

spawn ssh [email protected]$ipaddress

expect {

"yes/no" { send"yes\r";exp_continue }

"password:" {send "$passwd\r" }

}

interact

 

执行结果:

[[email protected] ~]#./ssh.exp

spawn ssh [email protected]

[email protected]‘s password:

 

2)通过调用bash的位置参数实现ssh远程登录

[[email protected] ~]# vimssh2.exp

#!/usr/bin/expect

set ipaddress [ lindex$argv 0 ]

set passwd [ lindex $argv1 ]

set user [ lindex $argv 2]

set timeout 30

spawn [email protected]$ipaddress

expect {

"yes/no" { send"yes\r";exp_continue }

"password:" {send "$passwd\r" }

}

interact

执行结果

[[email protected] ~]#./ssh2.exp 192.168.1.69 123456 root

spawn [email protected]

[email protected]‘spassword:

Last login: Wed Dec 3021:47:25 2015 from 192.168.1.68

 

 学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589

 

 

时间: 2024-08-10 23:22:32

【学神-RHEL7】1-28-mariadb数据库自动备份和expect的使用的相关文章

禅道及其数据库自动备份及短信、邮件通知脚本

一.添加SMTP服务器 在需要发送自动报警的服务器上修改如下文件,增加如下两行 # vim /etc/mail.rc set [email protected] smtp=smtp.126.com set smtp-auth-user=doteyplay smtp-auth-password=*** smtp-auth=login     当然,这里的SMTP服务器也可以使用别的,比如QQ的,但是QQ只能发几卦,在测试的时候,总报错:smtp-server: 454 Error: authent

mysql数据库自动备份脚本分享

前几篇博客已经相继公开了去转盘网的所有技术细节,如下: 百度网盘爬虫 中文分词算法 邀请好友注册 js分页部分代码 这篇博客我将继续公开数据库自动备份的代码.可以这么说,没有数据库,一切就是个蛋,没有数据库备份,一切还是个蛋,你可以想象数据库备份多么重要.不会linux,不会写shell的朋友麻烦先去补补.不过你说我牛逼,不补也能看懂,那没问题,哈哈,废话不说了.老规矩,上代码: #!/bin/bash time=$(date +"%d-%m-%Y") pre=/home/ubuntu

SQL Server2008数据库自动备份步骤

一,  在电脑开始菜单中选择“SQL Server Management Studio”双击.在出现的界面中点击“连接”按钮. 二,  在出现的“ Microsoft SQL Server Management Studio”界面中选择“管理”下的“维护计划”右击维护计划,点击“维护计划向导”, 三,  在出现的“SQL Server维护计划向导”界面中点击“下一步” 四,  在出现的界面中把名称和说明写上.然后点击“更改”设顶备份计划 五,  在出现的“作业计划属性”界面中,更改执行时间,也就

linux shell简单实现数据库自动备份

以centos系统为例,实现数据库自动备份.1.写一个shell: 12 #! /bin/bashmysqldump -cp --user=root --password='123' dbName | gzip > ~/db/dbName-`date +%Y%m%d%H`.sql.gz ; 上述shell中,root是备份时使用的用户名,123是密码,dbName是要备份的数据库的名称.把这个文件放在用户目录下,保存路径为:~/db/dbBackup.sh 保存结束后添加执行权限:chmod a

设置mysql数据库自动备份

由于项目需要,在windows下的mysql实现数据库自动备份.经资料查询和尝试,得出方法有两种: 1.使用windows自带的任务计划,然后定时执行一个数据库备份的脚本. 2.使用mysql管理工具navicat配置数据库的备份 这里,由于第二种方法比较简单实用,我就简单描述下第二种方法(因为简单). 工具: navicat for mysql mysql 5.5 步骤: 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击“计划”,再点击“新建批处理作业”. . 

Windows Server服务器端MySQL数据库自动备份

1.给root账户授权所有sql权限 grant all privileges on *.* to [email protected]"%" identified by "."; flush privileges; 2.建立bat批处理文件 @echo off set path=%path%;D:\Program Files\MySQL\MySQL Server 5.5\bin set y=%date:~0,4% set m=%date:~5,2% set d=%d

mysql学习之旅-数据库自动备份-测试环境搭建

#终于知道什么叫不会走先会跑了,刚开始接触第一个case就是数据库自动备份,我可是都没安装过啊?!   发完牢骚开始干活 首先,因为业务已经上线,不能随便动,先搭建测试环境吧 规划一下 版本:mysql-5.7.14-winx64.zip  从官网下载 系统:windows 7   64bit 解压缩到本地目录 D:\app\mysql57    #注意,非系统盘,非中文 将my-default.ini 复制一份重命名为my.ini  添加如下内容,先保证能开启服务 # For advice o

好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自动备份数据库,一键还原数据库,发送备份数据库日志报告到邮箱,自动压缩备份好的数据库 定期执行数据库备份任务,取代SSMS的维护计划,上传数据库备份文件到FTP服务器.其他网络硬盘等 软件有免费和付费两种模式,不过本人觉得免费版本的功能已经足够了 支持SQLSERVER版本:SQLSERVER200

如何让SQL Server数据库自动备份并压缩成rar文件

1.  先开启xm_cmdshell服务 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出.由于xp_cmdshell 可以执行任何操作系统命令,所以一旦SQL Server管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell 在SQL Server中执行操作系统命令,如:创建系统管理员,也就意味着系统的最高权限已在别人的掌控之中.由于存在安全隐患,所以在SQL Server 2005中, xp_cmdshell