shell脚本操作数据库插入数据
shell脚本实现添加用户
主方法:定义变量,调用函数。
shell中的特殊变量
$#:脚本输入参数的个数
$? 上个命令的退出状态,或函数的返回值
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID
$0:当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$@:脚本输入的所有参数
$* 传递给脚本或函数的所有参数
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" “)包含时,都以”$1" “2"…"2" … "2"…"n” 的形式输出所有参数。
但是当它们被双引号(" “)包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n"的形式输出所有参数;"n"的形式输出所有参数;"n"的形式输出所有参数;"@" 会将各个>参数分开,以"$1" “2"…"2" … "2"…"n” 的形式输出所有参数。
#------------------------------Main--------------------------------
basePath=`pwd`
log_file=${basePath}/add_user.log
db_name="test"
#This role_id is admin.
role_id="402880cd5f1a685f015f1a6969500017"
secret_level="0"
#1:can login.2:can not.
state="1"
user_name=""
user_name_zh=""if [ -f "$log_file" ]; thenrm -f $log_file
fiif [ "$#" -gt 0 ]; thenfor user in "$@"douid=`uuidgen | sed 's/-//g'`user_name=$useruser_name_zh=$useradd_userdone
elseecho "Usage: sh add_user.sh user1 user2 user3 ..."exit -1
fi
添加用户
首先判断操作系统是否存在此用户,若不存在,则报错。若存在,则检查数据库中是否存在此用户,若数据库中存在,则提示数据库已经存在此用户,若数据库不存在则插入数据库。
function add_user(){is_exist_os=`check_user_os`if [ "$is_exist_os" == 0 ]; thenis_exist_db=`check_user_db`if [ "x$is_exist_db" = "x" ]; theninsertDBif [ $? == 0 ]; thenmsg="Add user $user_name success!"elsemsg="Add user $user_name error!"fielsemsg="The user $user_name is exist in DB:test, table:USER!"fiwrite_log "$msg"echo "$msg"elsemsg="The user $user_name is not exist in OS!"write_log "$msg"echo "$msg"fi
}
判断用户是否存在于操作系统
function check_user_os(){if id -u $user_name > /dev/null 2>&1; thenecho "0"elseecho "-1"fi
}
判断用户是否存在于DB
通过查询数据表来进行判断
function check_user_db(){id=`select_user_db`echo $id
}
查询数据表中是否存在用户
function select_user_db(){mysql $db_name <<EOF
select ID from USER where USER_NAME='$user_name';
EOF
}
插入用户,并赋予权限
EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF.
EOF一般会配合cat能够多行文本输出.
其用法如下:
<<EOF //开始
…
EOF //结束
还可以自定义,比如自定义:
<<BBB //开始
…
BBB //结束
function insertDB(){mysql $db_name << EOF
insert into USER values('$uid', null, $secret_level, $state, '$user_name', '$user_name_zh');
insert into USER_ROLE values('$uid', '$role_id');
EOF
}
打印日志
function write_log(){echo `date` " :$1" >> $log_file
}
完整代码
#!/bin/bashfunction write_log(){echo `date` " :$1" >> $log_file
}function check_user_os(){if id -u $user_name > /dev/null 2>&1; thenecho "0"elseecho "-1"fi
}function select_user_db(){mysql $db_name <<EOF
select ID from USER where USER_NAME='$user_name';
EOF
}function check_user_db(){id=`select_user_db`echo $id
}function add_user(){is_exist_os=`check_user_os`if [ "$is_exist_os" == 0 ]; thenis_exist_db=`check_user_db`if [ "x$is_exist_db" = "x" ]; theninsertDBif [ $? == 0 ]; thenmsg="Add user $user_name success!"elsemsg="Add user $user_name error!"fielsemsg="The user $user_name is exist in DB:test:USER!"fiwrite_log "$msg"echo "$msg"elsemsg="The user $user_name is not exist in OS!"write_log "$msg"echo "$msg"fi
}#if mysql db has a password, use this command.
#mysql -utest -ptest test
function insertDB(){mysql $db_name << EOF
insert into USER values('$uid', null, $secret_level, $state, '$user_name', '$user_name_zh');
insert into USER_ROLE values('$uid', '$role_id');
EOF
}#------------------------------Main--------------------------------
basePath=`pwd`
log_file=${basePath}/add_user.log
db_name="test"
#This role_id is admin.
role_id="402880cd5f1a685f015f1a6969500017"
secret_level="0"
#1:can login.2:can not.
state="1"
user_name=""
user_name_zh=""if [ -f "$log_file" ]; thenrm -f $log_file
fiif [ "$#" -gt 0 ]; thenfor user in "$@"douid=`uuidgen | sed 's/-//g'`user_name=$useruser_name_zh=$useradd_userdone
elseecho "Usage: sh add_user.sh user1 user2 user3 ..."exit -1
fi
赋:批量创建linux用户
#!/bin/bash_name=user
_passwd=111111
i=1
while [ $i -lt 10 ]; do_username=$_name$iuseradd -d /apps/users/$_username $_usernameechoecho $_passwd | passwd --stdin $_usernamei=$(( $i + 1 ))
done
shell脚本操作数据库插入数据相关推荐
- shell脚本获取mysql插入数据自增长id的值
shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...
- linux mysql 写shell_Linux—编写shell脚本操作数据库执行sql
修改数据库数据 在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写. 一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行.本篇文 ...
- Linux—编写shell脚本操作数据库执行sql
修改数据库数据 在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写. 一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行 ...
- 用shell脚本给mysql插入数据_shell脚本向mysql表批量插入数据
如何使用shell向mysql数据库表中插入大量测试数据. 用shell脚本通过while循环批量生成mysql测试数据的方法,根据自己的表结构来生成sql语句即可. 代码: 复制代码 代码示例: # ...
- 解决用Python 操作数据库插入数据,数据库里面却没有数据的问题
最近在做项目时需要连接数据库进行测试,于是需要先把Excel数据导入到数据库里面去,Python 操作sql server数据库的代码大致如下(操作mysql 代码和这个差不多,只是包和连接信息的不同 ...
- 用shell脚本给mysql插入数据_mysql下通过shell脚本插入数据
一.创建数据库及表 建立数据库create database dic character set utf8; 建表CREATE TABLE `dic` ( `id` int(22) unsigned ...
- 在Linux中通过shell脚本向oracle数据库插入数据
通过shell脚本向oracle数据库插入数据 思路 实现 shell脚本 数据文件 测试 思路 如何通过shell脚本更新数据库数据?要解决这个问题,首先,我们需要在脑中回忆一下我们通常是如何更新数 ...
- C#如何操作Oracle并向数据库插入数据
今天在做一个功能,在C#中连接数据库并向数据库插入数据.现在总结起来很简单. 1.首先添加微软的DLL--System.Data.OracleClient.dll,注意这里可能会提示此DLL过时,别怕 ...
- mongo数据库插入数据_深入研究Mongo数据库
mongo数据库插入数据 More popularly known as "mongoDB". It is a no-sql based database. 俗称" mo ...
最新文章
- 将您重定向的次数过多什么意思_电池循环次数是什么意思?怎么计算的?
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车按键启动和蜂鸣器报警
- 【Splay】文艺平衡树(金牌导航 Splay-2)
- php 判断页面加载完,所有ajax执行完且页面加载完判断
- java jdbc 增删改封装_JAVA JDBC 常规增删改查简单封装
- 天梯赛L2-010 排座位(并查集和\set)
- 多个命令执行结果输出到同一个文件(批处理)
- OpenCV3 install tutorial for Mac
- 阿里云ddns解决动态IP问题
- linux学习第四课:命令格式和目录处理命令
- webpack配置路径及hash版本号,利用html-webpack-plugin自动生成html模板
- 斐讯k3cfe刷lede_斐讯 K3 A1 刷机经历
- android oppo 驱动,OPPO R9驱动安装不了怎么办 OPPO R9驱动安装不了的解决方法
- HBase CURD之Put
- 如何使用xbrowser图形化连接centos
- python基于opencv的手势识别_求python opencv 手势识别源代码
- 2-Arduino小车测速模板安装与测试
- Codeforces Global Round 2 B. Alyona and a Narrow Fridge
- 展会客流统计的客流统计系统,WiFi客流每时每客
- twitter php_php调用twitter api