暂无图片
自动任务执行了,却又没执行?
我来答
分享
redhat
2022-04-09
自动任务执行了,却又没执行?
暂无图片 5M

系统环境:centos6、centos7

crontab里为oracle用户设置了自动任务,每周五的18点自动执行healthcheck.sh脚本:

0 18 * * 5 nohup /home/oracle/scripts/healthcheck.sh &

healthecheck.sh的内容是进入到sqlplus里运行一个sql脚本:

sqlplus / as sysdba <<eof

@/home/oracle/scripts/healtheheck.sql

eof

正常情况,运行这个healthcheck.sh后会在当前目录生成一个html格式的报告

从/var/log/cron里也能看到周五18点的时候,oracle用户运行了这个任务:

Apr  8 18:00:01 CROND[29611]: oracle CMD (nohup /home/oracle/scripts/healthcheck.sh &)


但是当前目录并没有生成这个html的报告

手动运行/home/oracle/scripts/healthcheck.sh则是可以生成的

请问各位,这种情况大概是什么原因呢


我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
严少安
暂无图片

提供两个思路,我现在手头没环境,您可以先自行测试下:
可能是环境变量问题,sh里引入bashrc试下
也可能是cron解析的事情,比如写成bash -c 'nohup …'试试

暂无图片 评论
暂无图片 有用 0
暂无图片
redhat
题主
2022-04-09
sh里引入bashrc这个是怎么写?bash -c 'nohup …'试过了 还是老样子
严少安
答主
2022-04-09
在你的hc.sh里引入,source ~/.bash_profile这样
严少安
暂无图片

btw, 直接执行0 18 * * 5 /home/oracle/scripts/healthcheck.sh不就好了?不需要nohup的啊

暂无图片 评论
暂无图片 有用 0
redhat
题主
2022-04-09
是的,这样也行。我用nohup是为了看nohup.out输出的内容的。现在问题解决了,在sh脚本里加入source就行了
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏