当前位置: 技术问答>linux和unix
crontab的问题,请教大家
来源: 互联网 发布时间:2016-07-28
本文导语: 环境:AIX DB2 ksh可以单独执行,且备份成功,但通过crontab就不能,但试着在crontab后加>>/mesedu/log.txt,可以看到log.txt文件生成。请大家指点指点了,谢谢! mesedu@CIMHIS1-6:/mesedu> cat BACKUP_MES_EDU.ksh db2 backup database mes o...
环境:AIX DB2
ksh可以单独执行,且备份成功,但通过crontab就不能,但试着在crontab后加>>/mesedu/log.txt,可以看到log.txt文件生成。请大家指点指点了,谢谢!
mesedu@CIMHIS1-6:/mesedu> cat BACKUP_MES_EDU.ksh
db2 backup database mes online to /BACKUP/edu with 1 buffers buffer 0 parallelism 1 without prompting
mesedu@CIMHIS1-6:/mesedu> ls -l
total 88
drwxr--r-- 2 mesedu db2adm 256 Feb 01 2008
drwxr-xr-x 2 root system 256 Jun 08 2009 20090608data
-rwxr-xr-x 1 mesedu db2adm 108 Jan 05 11:51 BACKUP_MES_EDU.ksh
drwx--x--x 2 mesedu db2adm 256 May 31 2009 Mail
-rw-r--r-- 1 mesedu db2adm 0 May 14 2009 N
-rwxr----- 1 mesedu db2adm 1753 Jul 29 2008 PERF_ExecuteTime_S.ksh
-rwxr----- 1 mesedu db2adm 12288 May 13 2009 S0000183.LOG
-rwxr----- 1 mesedu db2adm 1006 May 13 2009 check_tbs.awk
drwxr-xr-x 7 mesedu db2adm 256 Jan 31 2008 db
-rw-r--r-- 1 mesedu db2adm 0 Jan 05 11:59 log.txt
drwxr-xr-x 2 mesedu db2adm 256 Jun 01 2007 lost+found
drwxr-xr-x 2 mesedu db2adm 4096 Apr 15 2008 repl
-rw-r--r-- 1 mesedu db2adm 1891 Feb 18 2009 smit.log
-rw-r--r-- 1 mesedu db2adm 439 Feb 18 2009 smit.script
-rw-r--r-- 1 mesedu db2adm 689 Feb 18 2009 smit.transaction
drwxrwsr-t 19 mesedu db2adm 4096 Mar 10 2008 sqllib
drwx------ 4 mesedu db2adm 256 Jun 04 2007 temptbs
mesedu@CIMHIS1-6:/mesedu> crontab -l
59 11 * * * /mesedu/BACKUP_MES_EDU.ksh
ksh可以单独执行,且备份成功,但通过crontab就不能,但试着在crontab后加>>/mesedu/log.txt,可以看到log.txt文件生成。请大家指点指点了,谢谢!
mesedu@CIMHIS1-6:/mesedu> cat BACKUP_MES_EDU.ksh
db2 backup database mes online to /BACKUP/edu with 1 buffers buffer 0 parallelism 1 without prompting
mesedu@CIMHIS1-6:/mesedu> ls -l
total 88
drwxr--r-- 2 mesedu db2adm 256 Feb 01 2008
drwxr-xr-x 2 root system 256 Jun 08 2009 20090608data
-rwxr-xr-x 1 mesedu db2adm 108 Jan 05 11:51 BACKUP_MES_EDU.ksh
drwx--x--x 2 mesedu db2adm 256 May 31 2009 Mail
-rw-r--r-- 1 mesedu db2adm 0 May 14 2009 N
-rwxr----- 1 mesedu db2adm 1753 Jul 29 2008 PERF_ExecuteTime_S.ksh
-rwxr----- 1 mesedu db2adm 12288 May 13 2009 S0000183.LOG
-rwxr----- 1 mesedu db2adm 1006 May 13 2009 check_tbs.awk
drwxr-xr-x 7 mesedu db2adm 256 Jan 31 2008 db
-rw-r--r-- 1 mesedu db2adm 0 Jan 05 11:59 log.txt
drwxr-xr-x 2 mesedu db2adm 256 Jun 01 2007 lost+found
drwxr-xr-x 2 mesedu db2adm 4096 Apr 15 2008 repl
-rw-r--r-- 1 mesedu db2adm 1891 Feb 18 2009 smit.log
-rw-r--r-- 1 mesedu db2adm 439 Feb 18 2009 smit.script
-rw-r--r-- 1 mesedu db2adm 689 Feb 18 2009 smit.transaction
drwxrwsr-t 19 mesedu db2adm 4096 Mar 10 2008 sqllib
drwx------ 4 mesedu db2adm 256 Jun 04 2007 temptbs
mesedu@CIMHIS1-6:/mesedu> crontab -l
59 11 * * * /mesedu/BACKUP_MES_EDU.ksh
|
export PATH 这句貌似不对哦
export $PATH
export $PATH
|
BACKUP_MES_EDU.ksh
在这个文件前面加上
#!/path/ksh
在这个文件前面加上
#!/path/ksh
|
没用过db2,是不是要在脚本里加上执行db2命令要用到的环境变量呢?在备份脚本前面加上一些显示变量值并记录到日志的命令看看那些环境变量是不是空的。
|
这个也可能 代码前面export一下环境变量
|
感觉是环境变量问题,脚本前面的db2备份命令没能正常执行 db2 backup database mes online to ...
可以在脚本前加几句输出db2要用的的环境变量,看一下log.txt里是否有值。
可以在脚本前加几句输出db2要用的的环境变量,看一下log.txt里是否有值。
|
加入所有db2操作要用到的环境变量,我以前写脚本做sybase的自动备份时发现是这样的
|
db2我不太清楚啊,比如管理oracle的用户要设置一些环境变量,如:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=DBNAME #数据库名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
等等,
sybase的也是类似的要设置一些变量,不太清楚你的情况是不是因为某些库文件之类的路径变量没有导致执行命令出错或者其它原因。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=DBNAME #数据库名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
等等,
sybase的也是类似的要设置一些变量,不太清楚你的情况是不是因为某些库文件之类的路径变量没有导致执行命令出错或者其它原因。
|
不是可以生成log文件了吗?
/mesedu/BACKUP_MES_EDU.ksh >log.txt 2>&1
看一下日志文件应该可以得出是什么问题了吧
/mesedu/BACKUP_MES_EDU.ksh >log.txt 2>&1
看一下日志文件应该可以得出是什么问题了吧