此文章主要向大家讲述的是用户利用 crontab 定时执行DB2 sql的示例,今天在RHEL 5.3测试了一下,普通用户利用crontab定时执行DB2 sql实际操作情况,走了一些弯路,因为用./可以执行得到正确结果。

成都创新互联公司网站建设公司,提供成都网站制作、成都网站建设、外贸营销网站建设,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
而crontab却执行得不到,很是郁闷,在网上查了半天,有好多说是/usr/bin /crontab的权限问题
可是我在RHEL 5.3查看并一下
- -rwsr-sr-x 1 root root 309K 2007-06-22 /usr/bin/crontab
 
我的权限是没有问题,后来查了很多资料才知道是DB2环境变量的问题,主要是水平不够,意识不高,写下备用
以db2inst1用户登陆linux系统
- 1.vi db2inst1cron
 - * * * * * /home/db2inst1/tongji.sh >>/home/db2inst1/b.txt
 - 2.crontab db2inst1cron
 - 3.vi tongji.sh (777)
 - #!/bin/bash
 - #tongji auto
 - top="20"
 - qiantian=$top`date -d '2 day ago' +"%y%m%d"`
 - yesterday=$top`date -d '1 day ago' +"%y%m%d"`
 - echo "----------------------------------------------"
 - echo $(date +"%y-%m-%d %H:%M:%S")
 - echo "-----------------setp1:date--------------------"
 - echo "qiantian:" $qiantian
 - echo "yesterday:" $yesterday
 - echo "-----------------setp2:char---------------------"
 - #sed -i "s/$qiantian/$yesterday/g" `grep $qiantian -rl /home/db2inst1/tongji_sec`
 - echo "----------------step3:dbconnect-----------------"
 - db2 "connect to toolsdb "
 - echo "1232312312"
 - db2 -tf /home/db2inst1/tongji_sec/sql_sec.sql
 - 4.vi sql_sec.sql
 - insert into liuchao values(10);
 - a.
 - [db2inst1@localhost ~]$ ./tongji.sh (正确,是想要结果)
 - 10-03-09 15:37:27
 - -----------------setp1:date--------------------
 - qiantian: 20100307
 - yesterday: 20100308
 - -----------------setp2:char---------------------
 - ----------------step3:dbconnect-----------------
 - Database Connection Information
 - Database server = DB2/LINUXX8664 9.5.3
 - SQL authorization ID = DB2INST1
 - Local database alias = TOOLSDB
 - 1232312312
 - DB20000I The SQL command completed successfully.
 - [db2inst1@localhost ~]$
 - b.crontab 执行(错误,无数据库操作,不是想要结果)
 - 10-03-09 15:38:01
 - -----------------setp1:date--------------------
 - qiantian: 20100307
 - yesterday: 20100308
 - -----------------setp2:char---------------------
 - ----------------step3:dbconnect-----------------
 - 1232312312
 
解决方法
- #!/bin/bash
 - #tongji auto
 - . /home/db2inst1/sqllib/db2profile #引入db2的环境变量(.后面有空格)
 - top="20"
 
以上的相关内容就是对普通用户利用 crontab定时执行DB2 sql示例的介绍,望你能有所收获。
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号