Cron不能正确运行shell脚本
问题描述:
即时通讯存在bash脚本未从cron运行的问题。当我从cli运行它作为根时,它运行良好。正如你所看到的,当脚本完成时我写入了一个txt文件。当脚本从cron运行时,这也是完成的,只有Oracle dmp没有保存(显然没有压缩)。这项工作做得非常快,所以我想它不会执行oracle的输出...Cron不能正确运行shell脚本
谢谢你的帮助!
backup.sh
#!/bin/bash
#makes an Oracle backup and zips the created file
TIME=`date +%F_%H:%M:%S`
FILENAME=Backup-$TIME
exp userid=user/password file=/home/user/DatabaseBackup/$FILENAME.dmp
zip /home/user/DatabaseBackup/$FILENAME.zip /home/user/DatabaseBackup/$FILENAME$
find /home/user/DatabaseBackup/ -mtime +0 -type f -delete
echo "Backup completed:" `date +%F_%H:%M:%S` >> /home/user/scripts/logBackup.txt
#END
crontab -e命令 26 * * * * /home/user/scripts/backup.sh
答
好吧,我所做的是:
我加
>> /home/user/cron.txt 2>&1
这对我的cronjob声明,这是我现在的玉米作物的输出。
有了这个很容易发现,为Oracle一些evironmet变量人失踪...
任何帮助的感谢提供!
添加可执行文件的完整路径(date,exp,zip,find)。 – Cyrus
在请求帮助之前,您应该捕获cron作业(stdin和stderr)的输出,因为在此输出中找到的任何错误消息都可能使您更容易找到原因,或者让其他人帮助您。在'cron'中执行的作业可能有不同的环境,并且很可能你的问题来自于'PATH'或其他一些变量的区别,你使用的任何程序都依赖于它。 – Fred
Fred1你说得对,最好检查一下叫做的程序的输出!生病了,看看有什么问题 – helmut1978