crontab对Oracle操作问题处理


[root@localhost home]# vi test.sh
#!/bin/sh
Oracle_HOME=/oracle/ora10/product
export ORACLE_HOME
userpwd=test/test@10.11.0.235:1521/ora10g
$ORACLE_HOME/bin/sqlplus -S $userpwd <<EOF
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
INSERT INTO test values(1,'test');
COMMIT;
EOF
exit;
 
以上test.sh文件中必须设置ORACLE_HOME环境变量,否则加入到crontab 里不能正常执行(如把环境变量注释掉:#ORACLE_HOME=/oracle/ora10/product
#export ORACLE_HOME
),即使在sqlplus前加绝对路径/oracle/ora10/product/bin也不行,crontab文件如下test1_crond ,日志见/var/log/cron

[root@localhost cron.d]# vi test1_crond
* * * * *  root sh /home/test.sh  >/home/test.log
~
~
SQL> conn test/test
Connected.
SQL> select * from test;
        ID NAME
---------- --------------------
         1 test
         1 test
         1 test
SQL>

[root@localhost cron.d]# tail -f /var/log/cron
Aug 17 14:03:01 localhost crond[10718]: (root) CMD (sh /home/x.sh)
Aug 17 14:03:01 localhost crond[10720]: (root) CMD (sh /home/test.sh  >/home/test.log)
Aug 17 14:04:01 localhost crond[11102]: (root) CMD (sh /home/x.sh)
Aug 17 14:04:01 localhost crond[11103]: (root) CMD (sh /home/test.sh  >/home/test.log)
Aug 17 14:05:01 localhost crond[11449]: (root) CMD (sh /home/x.sh)
Aug 17 14:05:01 localhost crond[11452]: (root) CMD (sh /home/test.sh  >/home/test.log)

相关内容