我有一个示例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都没有错误
答案 0 :(得分:1)
PATH
是不够的-您需要为用户初始化环境,包括许多变量。这些由$HOME/sqllib/db2profile
设置。
我建议添加
. /home/db2inst1/sqllib/db2profile
您的脚本,看看它是否有效。 如果没有,请分享报告的确切错误。
答案 1 :(得分:0)
检查cron是否以有权访问cd进入目录的用户身份运行脚本。