• shell脚本操作mysql通用脚本


    作用:可以在写监控脚本时,将结果值保存到mysql数据库

    使用方法:sh 脚本  库名称.表名称 字段=值 字段=值 字段=值

    1、脚本

    [root@localhost tmp]# cat writ_mysql.sh
    #!/bin/bash
    #判断传入的参数
    if [ $# -eq 0 ]
        then
          echo sh $0 table_name name=张三 xb=else
            #输入的参数转换函数 例子: name=张三 xb=1 转换成 name,xb '张三','1'
            convfield(){
                    #数组索引
                    j=1
                    #获取输入的参数,排除第一个参数
                    for i in "${@:2}"
                      do 
                       #获取name名称
                       name[$j]=$(echo $i|awk -F = '{print $1}')
                       #获取name的值
                       value[$j]=\'$(echo $i|awk -F = '{print $2}')\'
                       #查看字段名称和值
                       #echo ${name[$j]}=${value[$j]}
                       #索引加1
                       j=$((j+1))
                      done
                    #拼接成sql的name和value
                    new_name=$(echo ${name[@]}|sed 's/ /,/g')
                    new_value=$(echo ${value[@]}|sed 's/ /,/g')
    
                    echo "$1($new_name) values($new_value)"
                }
    
            jdbcinfo(){
                    user=root
                    pass='password'
                    ip=192.168.1.1
                    port=3306
                  }
            #将所有参数传递给转换函数,进行转换
            convfield $@
            jdbcinfo
    
    
            #将值插入指定表字段
            mysql -u$user -h$ip -P $port -p$pass -e \
            "insert into $1($new_name) values($new_value)"
    
            #查询对应表数据
            mysql -u$user -h$ip -P $port -p$pass -e \
            "select * from $1" 
    fi
    
    

    2、执行

    [root@localhost tmp]# sh writ_mysql.sh nginx_info.test name=周末
    nginx_info.test(name) values('周末')
    +----+--------+---------------------+--------+
    | id | name   | date                | bz     |
    +----+--------+---------------------+--------+
    |  1 | zhangs | 2022-07-11 15:15:51 | 测试   |
    
    | 13 | 周末   | NULL                | NULL   |
    +----+--------+---------------------+--------+
  • 相关阅读:
    电子邮件为什么要编码以及产生乱码的原因?
    UTF8国际通用为什么还要用GBK?
    python 调用shell命令的方法
    script —— 终端里的记录器
    IP数据报是如何在网络中转发的?
    网际协议:无连接数据报交付(IPv4)
    fork与vfork
    strlen与sizeof有什么区别?
    网络地址到物理地址的映射(ARP)
    分类的因特网地址
  • 原文地址:https://www.cnblogs.com/wukc/p/16469339.html
Copyright © 2020-2023  润新知