linux脚本里写sql语句,通过shell脚本随机插入sql语句

前期工作:创建表与序列。以及注释

后期工作:个人借用了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 <

--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结束标签,只有<

else

if [ "$rnum" -eq "2" ];then

/oracle/product/10g/bin/sqlplus hr/hr1234@192.168.4.22:1521/orcl 1>sql.log 2>&1 <

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 <

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 <

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 <

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 <

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 <

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值