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

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

Logo

更多推荐