通过shell脚本随机插入sql语句
2013-11-05 16:02
363 查看
前期工作:创建表与序列。以及注释
后期工作:个人借用了crontab来进行定时任务的触发随机脚本
create table TB_SERVICE_MONITOR
(
id NUMBER,
server_name VARCHAR2(20),
time VARCHAR2(30)
)
comment on column TB_SERVICE_MONITOR.id
is 'ID';
comment on column TB_SERVICE_MONITOR.server_name
is '应用名称';
comment on column TB_SERVICE_MONITOR.time
is '访问时间';
create sequence SERVER_MONI_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
#! /bin/bash
##--插入的sql, 'bszn'为server_name名称
source .bash_profile
--引入oracle的环境变量,否则脚本在crontab中执行时会报错,但手动执行却是正常的,故需要添加
declare -i rnum=$RANDOM*8/32767
--declare -i 声明一个整数数值类型,rnum为变量。在32767为在0-32767中间随机生成一个数值(确定了一个大的取值范围,个人理解),$RANDOM为随机函数,*8为在0-7之间随机产生数值(从大的范围中,再一次缩小范围)。
if [ "$rnum" -eq "1" ];then --数值之间的比较用英文字母的eq,lt等,字符串用=,!=之类的
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
--sqlplus的远程登录方式,以及sqlplus在oracle服务器中的绝对路径,可以通过find /$oracle_home -name sqlplus查得
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'bszn',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF --此处必须顶头写,否则linux shell认为没有EOF结束标签,只有<<EOF开头标签。
else
if [ "$rnum" -eq "2" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'tqyb',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))
commit;
exit;
EOF
else
if [ "$rnum" -eq "3" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'wdzb',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "4" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'gsgg',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "5" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'cydh',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "6" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'cxgjj',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "7" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'fdjs',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
fi
fi
fi
fi
fi
fi
fi
本文出自 “Kayson” 博客,请务必保留此出处http://lengxuezhixuan.blog.51cto.com/430895/1322308
后期工作:个人借用了crontab来进行定时任务的触发随机脚本
create table TB_SERVICE_MONITOR
(
id NUMBER,
server_name VARCHAR2(20),
time VARCHAR2(30)
)
comment on column TB_SERVICE_MONITOR.id
is 'ID';
comment on column TB_SERVICE_MONITOR.server_name
is '应用名称';
comment on column TB_SERVICE_MONITOR.time
is '访问时间';
create sequence SERVER_MONI_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
#! /bin/bash
##--插入的sql, 'bszn'为server_name名称
source .bash_profile
--引入oracle的环境变量,否则脚本在crontab中执行时会报错,但手动执行却是正常的,故需要添加
declare -i rnum=$RANDOM*8/32767
--declare -i 声明一个整数数值类型,rnum为变量。在32767为在0-32767中间随机生成一个数值(确定了一个大的取值范围,个人理解),$RANDOM为随机函数,*8为在0-7之间随机产生数值(从大的范围中,再一次缩小范围)。
if [ "$rnum" -eq "1" ];then --数值之间的比较用英文字母的eq,lt等,字符串用=,!=之类的
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
--sqlplus的远程登录方式,以及sqlplus在oracle服务器中的绝对路径,可以通过find /$oracle_home -name sqlplus查得
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'bszn',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF --此处必须顶头写,否则linux shell认为没有EOF结束标签,只有<<EOF开头标签。
else
if [ "$rnum" -eq "2" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'tqyb',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))
commit;
exit;
EOF
else
if [ "$rnum" -eq "3" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'wdzb',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "4" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'gsgg',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "5" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'cydh',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "6" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'cxgjj',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
else
if [ "$rnum" -eq "7" ];then
/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <<EOF
insert into tb_service_monitor values(SERVER_MONI_SEQ.nextval,'fdjs',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
commit;
exit;
EOF
fi
fi
fi
fi
fi
fi
fi
本文出自 “Kayson” 博客,请务必保留此出处http://lengxuezhixuan.blog.51cto.com/430895/1322308
相关文章推荐
- 通过shell脚本随机插入sql语句
- Oracle数据库案例整理-执行Oracle脚本失败或异常-使用SQL语句插入中文后数据库中显示乱码
- Shell脚本中执行sql语句操作mysql的5种方法
- 【shell sql】shell脚本嵌入mysql语句以进行遍历表的操作
- Magento 通过SQL语句查找插入数据
- 通过Shell数组传参控制Sql脚本串并行调度一例
- Shell脚本中执行sql语句操作mysql
- c语言中通过变量插入到数据库sql语句中
- 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本
- 通过SQL语句手动向DISCUZ x2 插入帖子数据
- 好用生成插入语句的SQL脚本
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- 通过脚本执行sql语句
- sql语句批量处理,通过linux执行sql脚本
- 如何通过sql的insert语句插入大量字符串到oracle的clob字段?
- 通过脚本执行sql语句
- 把SQL数据库生成脚本插入的 SQL语句
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- 通过SQL语句将一个表的数据插入到另外一个表
- 通过sql语句向oracle数据库中插入一条记录(含有主键),系统当前时间插入表中 ,空值插入表中