Shellscript在cron作业中不起作用,但可以手动运行

时间:2019-09-30 08:59:20

标签: linux cron db2

我有一个示例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都没有错误

2 个答案:

答案 0 :(得分:1)

PATH是不够的-您需要为用户初始化环境,包括许多变量。这些由$HOME/sqllib/db2profile设置。 我建议添加

. /home/db2inst1/sqllib/db2profile

您的脚本,看看它是否有效。 如果没有,请分享报告的确切错误。

答案 1 :(得分:0)

检查cron是否以有权访问cd进入目录的用户身份运行脚本。