crontab计划运行shell脚本,调用ncl执行失败

编写了bash脚本,调用ncl脚本绘图,在前台运行时候无误,但是加入crontab任务就是始终无法出图,并且无错误输出。

经过搜索,问题得到解决。是环境变量的问题。所有执行的命令,和文件都要指定完整的路径,此外,对于ncl程序,还要在bash脚本中添加NCARG_ROOT环境变量。

详细过程

最近使用crontab,计划执行bash脚本,但老是得不到正确结果,而且还没有错误信息。经过广泛百度之后发现,需要在bash脚本中的首行加入这一句,从而可以将crontab的执行细节输出到日志

 set -x; exec 2>/path/to/logfile  参考自 https://stackoverflow.com/questions/34289641/sh-file-not-running-on-cron-ubuntu

这样就可以将crontab的执行结果输出到文件了。接下来查看输出文件,查找具体可能的原因。

查看输出文件,可以发现结果有如下输出:

warning:Unable to Get System Resource File Name? 
warning:Unable to load System Resource File (null) 

再次搜索相关帖子,发现出错原因:没有设置 NCARG_ROOT 变量  https://www.ncl.ucar.edu/Support/install_archives/2009/0220.html 

在bash脚本中添加相应环境变量后,问题解决了!

回想起一些后台执行的命令出错的原因也是环境变量设置的问题。所以应当有所了解了

原文地址:https://www.cnblogs.com/jiangleads/p/11329623.html