crontab 里无法执行expdp,crontab执行expdp
编辑个脚本 xxx.sh
#!/bin/sh
rq=`date +%Y%m%d`
filename="test$rq"
expdp system/*** directory=expdump dumpfile=$filename.dmp logfile=$filename.log schemas=test content=data_only
手工可以执行OK,满以为都OK 结果放进了CRONTAB里 第二天却没有执行,被叼毛叼了几句!
原因可能有:
1 环境问题 最好来个 source ~/.bash_profile
2 路径问题 那好 我们来个绝对路径
3 SH问题 EXPDP不执行SH变量 dumpfile=$filename,办法有 dumpfile=xxxooo.dmp ...... mv xxxooo.dmp $filename
找了一个下午终于解决了,
是因为 crontab 的 环境的问题
我在crontab的脚本里添加 以下代码又重启了一下 成功了
SHELL=/bin/bash
#PATH=/sbin:/bin:/usr/sbin:/usr/bin
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
MAILTO=root
HOME=/
。。。。。。。。。。。。。。
依然感谢大家 !!!
还有上面的fdisk -l |grep -c 'Disk'命令是用来获取 电脑 物理磁盘个数的。
在dbaccess前加上绝对路径
或者在shell脚本里面在执行dbaccess命令前,先改变工作路径到相应位置。
------------------
需要在脚本里增加环境变量设置
set CLIENT_LOCALE=EN_US.CP1252
set DB_LOCALE=EN_US.8859-1
set SERVER_LOCALE=EN_US.CP1252
set DBLANG=EN_US.CP1252