我有一个示例 cron,我从 DB2 中的表中导出数据。当我将它包含在 crontab 中时,我的 shellscript 不起作用,但是当手动运行时,它起作用了。 cron 在 crontab 中手动导出文件,但它不会。
我已经尝试包含 echo $path
的输出,但仍然不起作用
#!/bin/bash
rundate=`date "+%y%m%d"`
cd /home/db2inst1/db2inst1/scripts/SQL/output
gzip *.csv
clear
cd /home/db2inst1/db2inst1/scripts/SQL/
export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
db2 "connect to SampleDB user user using sample"
db2 EXPORT TO ./output/Sample_$rundate.csv OF DEL MODIFIED BY NOCHARDEL "SELECT * from SampleTable where MODIFIED_DATE=(CURRENT_DATE -1 DAY)"
手动运行或者使用crontab都没有报错
最佳答案
PATH
是不够的 - 您需要为用户初始化环境,包括一些变量。这些由 $HOME/sqllib/db2profile
设置。
我建议添加
. /home/db2inst1/sqllib/db2profile
到你的脚本,看看它是否有效。 如果没有,请分享报告的确切错误。
关于linux - Shellscript 在 cron 作业中不起作用,但可以手动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58164571/