日期:2014-05-16  浏览次数:20865 次

关于crontab问题
在linux系统中写了一个shell脚本,该脚本的功能是对文件内容解析成.txt文件,然后见文件里面的内容插入到数据库中。(对方每过10分钟向我们服务器ftp过来文件)
  现在想每过一个小时能自动执行shell脚本将数据存储到数据库中 对应的crontab指令为:
30 * * * * sh /urms/shell/aaa_data/filter_auth_New.sh >> /urms/shell/aaa_data//log/auth.log

通过查询auth.log日志发现没到30分的时候shell脚本执行 但是其中的连接数据库后面没有继续执行下去(数据库中没有数据)。日志内容如下:
======================开始解析vpn数据并插入到数据库======================
=========================begin today vpdn job===============================
20111025
inserting the data into the database...


我后来直接执行sh /urms/shell/aaa_data/filter_auth_New.sh >> /urms/shell/aaa_data//log/auth.log发现数据插入到数据库中了,日志内容如下:
======================开始解析vpn数据并插入到数据库======================
=========================begin today vpdn job===============================
20111025
inserting the data into the database...

SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 10月 26 11:03:36 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

达到提交点 - 逻辑记录计数 64
达到提交点 - 逻辑记录计数 128
达到提交点 - 逻辑记录计数 192
达到提交点 - 逻辑记录计数 256
达到提交点 - 逻辑记录计数 320
达到提交点 - 逻辑记录计数 384
达到提交点 - 逻辑记录计数 448
达到提交点 - 逻辑记录计数 512
达到提交点 - 逻辑记录计数 576
达到提交点 - 逻辑记录计数 640(这表示在往数据库中插数据)

执行的指令相同,只不过一个是用crontab自动执行 一个是我手动执行的 怎么crontab自动执行不成功,请各位大大帮忙告诉小弟问题原因 谢谢!

------解决方案--------------------
一些环境变量设置有问题。脚本当中
SHELL=/bin/bash
这个一定要有的。
------解决方案--------------------
先创建cronfile
root@master:/home/cstor# vi cronfile
root@master:/home/cstor# cat cronfile
30 * * * * sh /urms/shell/aaa_data/filter_auth_New.sh >> /urms/shell/aaa_data//log/auth.log

root@master:/home/cstor# crontab cronfile
root@master:/home/cstor# 

------解决方案--------------------
脚本加入 source /etc/profile
试试
------解决方案--------------------
脚本里添加上数据库的环境变量就行了,可以参看对应用户下 env的数据库相应的环境变量