精华内容
下载资源
问答
  • 利用expect自动交互命令实现mysql登陆

    千次阅读 2013-09-25 18:57:37
    2.现在通过shell脚本的形式封装expect实现同样的效果,代码如下: 第一行代码代表在哪个路径寻找expect脚本命令。 第三行代码通过spawn执行后面的shell命令。 第四行代码代表通过expect捕捉spawn执行命令的结果。 ...

    1.登陆mysql的一般步骤为:mysql -u root -p ,然后提示你输入密码(ubuntu下),假设密码为123456。

    2.现在通过expect脚本封装mysql命令,假设文件名为test.sh,直接运行test.sh即可实现以上同样的效果,代码如下:

    第一行代码代表在哪个路径寻找expect脚本命令。

    第三行代码通过spawn执行后面的shell命令。

    第四行代码代表通过expect捕捉spawn执行命令的结果。

    第五行代码通过send会将expect脚本需要的信息发送给spawn启动的那个进程。

    最后一行代码代表执行完保持交互状态,把控制权交给控制台,不然会退出。

    展开全文
  • mysqldump -h [mysqlhost ip] -P [mysql port] -u [mysql user] -p [mysql database] --single-transaction --skip-opt -t --skip-tz-utc > [filename] 各参数意义如下: [mysqlhost ip]:数据库 IP [mysql ...

      平常 MySQL 数据库导出时,可用如下命令格式。

    $ mysqldump -h [mysqlhost ip] -P [mysql port] -u [mysql user] -p [mysql database] --single-transaction --skip-opt -t --skip-tz-utc > [filename]
    

      各参数意义如下:

    • [mysqlhost ip]:数据库 IP
    • [mysql port]:数据库端口
    • [mysql user]:数据库访问用户
    • [mysql database]:数据库名
    • [filename]:导出文件名字
    • --skip-opt:跳过锁表(即导出时不锁表)
    • -t:只导数据,不导表结构

      示例:输入如下命令,回车输入密码即可导出 testdb 数据库全部表格。

    $ mysqldump -h 101.132.242.27 -P 3306 -u testuser -p testdb --single-transaction --skip-opt -t --skip-tz-utc > testdb.sql
    Enter password: 
    

      对于需要定时备份数据库的操作来说,上述语句每次都需要手动输入命令,不太方便。可以借助 expect 自动交互命令来实现自动输入数据库密码来完成导出文件。具体步骤如下。

    一、创建脚本文件 dumpDb.sh,编辑脚本如下。

    $ cat dumpDb.sh 
    #!/bin/sh
    
    starttime=$(date "+%Y-%m-%d %H:%M:%S")
    echo $starttime "Starting dump testdb data" >> dump.log
    
    /usr/bin/expect<<EOF
     set timeout 300
     spawn sh -c "/usr/bin/mysqldump -h 101.132.242.27 -P 3306 -u testuser -p testdb --single-transaction --skip-opt -t --skip-tz-utc > testdb.sql"
     expect "Enter password:" 
     send "yourpassword\n" 
     expect EOF
    EOF
    
    endTime=$(date "+%Y-%m-%d %H:%M:%S")
    echo $endTime "Ending dump testdb data" >> dump.log
    
    exit
    

      上述脚本文件,导出数据库前将开始时间追加到 dump.log 文件中,然后将数据库全库数据导出到文件 testdb.sql(具体参数值可修改为实际的数据库配置),最后将结束时间追加到 dump.log 文件中。

    二、执行导出脚本 dumpDb.sh

    1. 方法一:直接执行 dumpDb.sh
    $ sh dumpDb.sh
    
    1. 方法二:为 dumpDb.sh 添加可执行权限
    $ chmod u+x dumpDb.sh 
    $ ./dumpDb.sh
    
    1. 创建后台执行脚本 dump.sh,后台执行
    $ cat dump.sh 
    nohup sh dumpDb.sh >/dev/null 2>&1 &
    $ sh dump.sh
    

      以上几种方式均可以执行导出脚本,将数据库数据导出。

    展开全文
  • SSH批量管理expect自动交互 原创博文http://www.cnblogs.com/elvi/p/7662908.html # SSH批量管理 # expect自动交互 ############################# #!/bin/sh # 初次使用,以root批量执行 CMD=( ...

    SSH批量管理
     expect自动交互

     原创博文http://www.cnblogs.com/elvi/p/7662908.html

    # SSH批量管理
    # expect自动交互
    
    
    #############################
    #!/bin/sh
    # 初次使用,以root批量执行
    
    CMD=(
    date
    uname -r
    hostname
    )
    
    sh ${[*]}
    
    . /etc/init.d/functions
    [[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装
    ##########
    
    
    #############################
    # #SSH批量执行shell命令
    #!/bin/sh
    . /etc/init.d/functions
    [[ $# == 0 ]] && { echo 'ege: /bin/sh '$0' "命令1;命令2"';exit; }
    for n in 81 82 83
    do
      echo  
      ssh -p22 192.168.20.$n $*
      [[ $? == 0 ]] && action "========IP:192.168.20.$n========" /bin/true || action "========IP:192.168.20.$n========" /bin/false
    done
    ##########
    
    
    
    #############################
    ###批量推送文件
    #!/bin/sh
    . /etc/init.d/functions
    [[ $# == 0 ]] && { echo 'ege: /bin/sh '$0' "本地文件" "(远程)目录"';exit; }
    for n in 81 82 83
    do
      scp -P22 $1 sshync@192.168.20.$n ~/ >/dev/null 2>&1 &&\
      ssh -p22 -t sshync@192.168.20.$n sudo rsync ~/$1 $2 >/dev/null 2>&1
      [[ $? == 0 ]] && action "========IP:192.168.20.$n" /bin/true || action "========IP:192.168.20.$n" /bin/false
    done
    ##########
    
    #############################
    #!/bin/sh
    # 批量分发SSHKEY
    
    . /etc/init.d/functions
    [[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装
    
    PUB=/`whoami`/.ssh/id_dsa.pub
    [[ -f $PUB ]] || { ssh-keygen -t dsa -P '' -f /`whoami`/.ssh/id_dsa>/dev/null 2>&1; } #若没公钥则生成
    
    USER=sshync
    PASS=sshync
    # IP : SIP + SIP_end
    SIP=192.168.20.
    SIP_end=(41 47 43)
    
    #expect自动交互
    function EXP() {
    /usr/bin/expect << EOF
    set timeout 1
    spawn ssh-copy-id -i $PUB "-p22 $USER@$SIP$n"
    expect {
            "yes/no" { send "yes\r";exp_continue }
            "password:" { send "$PASS\n";exp_continue } 
            eof { exit }
            }
    EOF
    }
    #
    [[ $1 == y ]] || { echo -e 'ege: /bin/sh '$0' y \n    当前'`whoami`'用户向远程用户'$USER'分发SSHKEY \n    远程主机列表'$SIP''${SIP_end[*]}' \n';exit; }
    
    for n in ${SIP_end[*]}
    do
      EXP |grep '.ssh/authorized_keys'>/dev/null 2>&1
      [[ $? == 0 ]] && action "========IP:192.168.20.$n" /bin/true || action "========IP:192.168.20.$n" /bin/false
    done
    
    
    #############################
    #!/bin/sh
    #Made by elven,2017
    # MariaDB初始化,设置密码
    
    DBPass=db2017
    [[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装
    /usr/bin/expect << EOF
    set timeout 30
    spawn mysql_secure_installation
    expect {
        "enter for none" { send "\r"; exp_continue}
        "Y/n" { send "Y\r" ; exp_continue}
        "password:" { send "$DBPass\r"; exp_continue}
        "new password:" { send "$DBPass\r"; exp_continue}
        "Y/n" { send "Y\r" ; exp_continue}
        eof { exit }
    }
    EOF
    #测试
    mysql -u root -p$DBPass -e "show databases;"
    #############################

     

    转载于:https://www.cnblogs.com/elvi/p/7662908.html

    展开全文
  • python脚本与mysql交互

    千次阅读 2016-09-11 10:38:57
    python脚本与mysql交互
    import os
    import pexpect
    
    os.system('service mysql restart')
    try:
        print 'create database water ...'
    
        mysql2 = pexpect.spawn('mysql -u root -p', timeout=3)
        mysql2.expect("Enter password:")
        mysql2.sendline('') # 密码
        mysql2.expect('mysql>')
        mysql2.sendline('create database %s;' % '') # 数据库名
        mysql2.sendcontrol('d')
    
        print 'done ...'
    except Exception, e:
        print e
    展开全文
  • expect交互工具

    2018-07-31 14:00:43
    1.expect简介 2.expect安装 2.1expect默认未安装 3.命令与参数解释 3.1脚本开头 3.2常用后缀 3.3主要命令 4.实例操作: 4.1通过expect脚本,实现ssh自动化连接 4.1.1expect脚本内容与解释 4.1.2执行expect脚本 ...
  • expect--交互命令

    2020-09-11 15:08:05
    expect交互命令 expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。 ubuntu: sudo apt-get install expect -y expect常用命令总结: ...
  • /usr/bin/expect解释器声明set timeout 30设置超时时间,单位秒spawn mysql -uroot -pspawn 是expect的内部命令,个人理解其作用就是宣告进入人机模拟开始expect "Enter password:"expect也是内部命令,作用是监视...
  • expect 应用之操作 MySQL

    千次阅读 2019-10-30 18:08:09
    问答频道看到一个关于 expect 命令操作 MySQL 的问题,这个命令没见过,花了半个小时研究了一下,发现这个工具还是有用的,本文整理一下解答该问题的过程,顺便练习一下 Shell 编程。 安装 expect 测试这个脚本时...
  • expect实现自动交互

    2020-03-14 10:18:58
    使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组 背景 有需求,在允许命令或者脚本跳出交互行,需要...
  • 大纲: 1、expect环境搭建及脚本编写 概述 expect脚本详解 expect环境搭建 expect脚本实现ssh远程连接 expect脚本实现ssh远程连接(通过shell传递参数) 2、正则表达式详解及实例 详解 普通正则 扩展正则 案例 1、...
  • expect实现非交互

    2017-10-21 22:47:00
    expect命令是一个实现交互功能的软件套件,是基于TCL的脚本编程语言,在企业运维中,系统会以交互的形式要求运维人员输入指定的字符串,之后才能继续执行命令。例如:为用户设置密码时,一般情况下需要手工输入两次...
  • [root@server1 ~]# read i <<EOF > hello > mysql > EOF [root@server1 ~]# echo $i hello
  • 一、 Expect说明 expect是单独的一种脚本语言工具。expect不是/bin/sh,也不是/bin/bash,他是Linux用于模拟人机交互行为的程序 二、 安装关联包 # yum -y install tcl* # yum -y install expect* 三、 exp...
  • 自动化交互expect

    2019-09-27 07:18:34
    自动化交互expect 一,介绍  每次服务器控制链接都需要输入密码,很麻烦,每次交互大大延长了时间 因此就有了免交互及自动化交互存在expect 二,安装  yum install expect -y  查看是否安装成功  rpm -...
  • 用来实现自动的交互式任务,无需人为干预。在实际开发中,运行shell脚本有时候会输入linux密码或者是mysql密码等,而expect可以帮我们输入。 二、安装 expect在linux系统中没有自带,需要我们自行安装,在Ubuntu系统...
  • 搞定shell脚本expect自动化交互输入密码等就是这么简单
  • 今天讲解下expect交互 首先安装: [root@client ~]# yum install expect* -y  [root@client ~]# which expect /usr/bin/expect 编写一个expect脚本: 1 #!/usr/bin/expect #这...
  • 之前有个需求, 客户要批量给服务器装mongo做副本集, 在安装过程中需要手动输入一些比如ssh密码的东西, 刚好用到expect, 顺便记录 自己的机子是deepin, 一些命令的过程中需要sudo 输入密码, 刚好用这个举例 在启动...
  • expect实现无交互操作

    2017-02-17 11:01:00
    按两下tab linux总共2000个命令,,常用的200个命令。 只要文件改变了,MD5值就会变!    
  • shell脚本编辑 -变量初值处理、expect交互 1.变量的初值:字符串初值设置: 当你什么都没输入的情况下,有一个默认值 语法结构: ${var:-word} //如果未定义变量的值,默认输出word //如果定义了变量的值,输出定义...
  • 用来实现自动的交互式任务,无需人为干预。在实际开发中,运行shell脚本有时候会输入linux密码或者是mysql密码等,而expect可以帮我们输入。 二、安装 expect在linux系统中没有自带,需要我们自行安装,在Ubuntu...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,268
精华内容 907
关键字:

expectmysql交互

mysql 订阅