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

标签 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都没有报错

最佳答案

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

. /home/db2inst1/sqllib/db2profile

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

关于linux - Shellscript 在 cron 作业中不起作用,但可以手动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58164571/

相关文章:

mysql - Magento cron 作业给出错误 SQLSTATE [HY000] [2002] 无法连接到本地 MySQL 服务器

java - Spring data jpa SELECT ... FOR UPDATE 查询不适用于@query

mysql - 如何每个周末运行mysql事件。每周五开始,每周日晚上结束

Java - DB2 连接错误 SQL30082N "USERNAME AND/OR PASSWORD INVALID"

db2 - IBM DB2 9.7,内联 CLOB 和 VARCHAR 之间有什么区别?

linux - 在 bash 中复制整个驱动器上的所有照片?

java - 为什么守护进程最经常用C编写?

python-3.x - 如何在 ubuntu 18.04 中将 python 3.8.0 升级到 3.8.3

MySQL 在 Ubuntu 16.04 上升级失败

google-app-engine - 如何在 Google Cloud Platform 上安排 Cron 作业?