程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 執行DB2 sql,普通用戶可利用 crontab 定時完成

執行DB2 sql,普通用戶可利用 crontab 定時完成

編輯:DB2教程

此文章主要向大家講述的是用戶利用 crontab 定時執行DB2 sql的示例,今天在RHEL 5.3測試了一下,普通用戶利用crontab定時執行DB2 sql實際操作情況,走了一些彎路,因為用./可以執行得到正確結果。

而crontab卻執行得不到,很是郁悶,在網上查了半天,有好多說是/usr/bin /crontab的權限問題

可是我在RHEL 5.3查看並一下

  1. -rwsr-sr-x 1 root root 309K 2007-06-22 /usr/bin/crontab 

我的權限是沒有問題,後來查了很多資料才知道是DB2環境變量的問題,主要是水平不夠,意識不高,寫下備用

以db2inst1用戶登陸linux系統

  1. 1.vi db2inst1cron  
  2. * * * * * /home/db2inst1/tongji.sh >>/home/db2inst1/b.txt  
  3. 2.crontab db2inst1cron   
  4. 3.vi tongji.sh (777)  
  5. #!/bin/bash  
  6. #tongji auto  
  7. top="20" 
  8. qiantian=$top`date -d '2 day ago' +"%y%m%d"`  
  9. yesterday=$top`date -d '1 day ago' +"%y%m%d"`  
  10. echo "----------------------------------------------"  
  11. echo $(date +"%y-%m-%d %H:%M:%S")  
  12. echo "-----------------setp1:date--------------------"  
  13. echo "qiantian:" $qiantian  
  14. echo "yesterday:" $yesterday  
  15. echo "-----------------setp2:char---------------------"  
  16. #sed -i "s/$qiantian/$yesterday/g" `grep $qiantian -rl /home/db2inst1/tongji_sec`  
  17. echo "----------------step3:dbconnect-----------------"  
  18. db2 "connect to toolsdb "  
  19. echo "1232312312"  
  20. db2 -tf /home/db2inst1/tongji_sec/sql_sec.sql  
  21. 4.vi sql_sec.sql  
  22. insert into liuchao values(10);  
  23. a.  
  24. [db2inst1@localhost ~]$ ./tongji.sh 正確,是想要結果)  
  25. 10-03-09 15:37:27  
  26. -----------------setp1:date--------------------  
  27. qiantian: 20100307  
  28. yesterday: 20100308  
  29. -----------------setp2:char---------------------  
  30. ----------------step3:dbconnect-----------------  
  31. Database Connection Information  
  32. Database server = DB2/LINUXX8664 9.5.3  
  33. SQL authorization ID = DB2INST1 
  34. Local database alias = TOOLSDB 
  35. 1232312312  
  36. DB20000I The SQL command completed successfully.  
  37. [db2inst1@localhost ~]$   
  38.  
  39. b.crontab 執行錯誤,無數據庫操作,不是想要結果)  
  40. 10-03-09 15:38:01  
  41. -----------------setp1:date--------------------  
  42. qiantian: 20100307  
  43. yesterday: 20100308  
  44. -----------------setp2:char---------------------  
  45. ----------------step3:dbconnect-----------------  
  46. 1232312312  

解決方法

  1. #!/bin/bash  
  2. #tongji auto  
  3. . /home/db2inst1/sqllib/db2profile #引入db2的環境變量.後面有空格)  
  4. top="20"  

以上的相關內容就是對普通用戶利用 crontab定時執行DB2 sql示例的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved