shell脚本操作mysql通用脚本
2024-09-08 19:03:37
作用:可以在写监控脚本时,将结果值保存到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 |
+----+--------+---------------------+--------+
最新文章
- js生成一个不重复的ID的函数的进化之路
- JavaEE Spring
- c语言数据结构之 堆排序
- Atitit。木马病毒原理机密与概论以及防御
- JS时间自动更新
- 第一个jsp代码实现简单计算器
- 在express站点中使用ejs模板引擎
- objectARX获取当前图层所有文字样式
- USB 描述符
- Hibernate 使用说明
- 为啥都不用Qt Quick Controls 2呢
- CKEditor + CKFinder 实现编辑上传图片配置 (二)
- gulp快速入门&;初体验
- [C#源代码]使用SCPI指令对指定通信端口(RS232/USB/GPIB/LAN)的仪器编程
- 一 : springmvc常用注解
- T-SQL 中的CROSS JOIN用法(半翻译)
- AngularJS进阶(三十五)浏览器兼容性解决之道
- layui选项卡同步问题
- Summary: Calculate average where sum exceed double limits
- C#8个常用的字符串的操作