定期的にDBパッチするシェルスクリプト
以下は、10秒おきに10件のレコードを100回insertするサンプルで、試験用に作成したのを簡略化したものです。SQL文を作って実行してるだけなのでupdateにも応用できるだろうけど、あまり用途はなさそう。。
#!/bin/sh SQL_FILE="tmp.sql" ONE_TIME=10 SLEEP_TIME=10 # sec TOTAL=1000 i=0 while true do let disp=${i}+1 echo "--- Start ${disp}〜 ---" cat /dev/null > ${SQL_FILE} j=0 while true do printf "insert into table_name values ( \ '000%04d', '0801234%04d', 'hoge', 'foo', 'var', sysdate );\n" \ ${i} ${i} >> ${SQL_FILE} let i=${i}+1 let j=${j}+1 if [ ${j} -ge ${ONE_TIME} ]; then break fi done sqlplus $ORACLE_USR/$ORACLE_PWD@$ORACLE_SID < ${SQL_FILE} # Oracle DB if [ ${i} -ge ${TOTAL} ]; then break fi echo "--- 〜${i} End ---" echo "--- ${SLEEP_TIME} sec. sleep start ---" sleep ${SLEEP_TIME} echo "--- ${SLEEP_TIME} sec. sleep end ---" done rm -f ${SQL_FILE}