Linux Crontab定时执行脚本出错,但手动执行脚本正常原因及解决方案

实际开发场景

需要开发一个Flink监控程序,初步使用shell脚本进行监控,如果发现失败了,则自动重新运行Flink命令行参数进行重启。

遇到的问题

编写好shell脚本后,在linux命令行调用 sh shell.sh进行测试,成功实现监控和重启功能。于是利用crontab对脚本进行定时调度监控。

后来发现,当Flink失败时确实发出了监控报警,但是却没有自动重启。经排查后发现,应该是脚本中Flink命令行启动Flink任务没有成功,但是在Linux控制台中测试又没问题,这是什么原因呢?

查找资料之后发现,crontab有一个坏毛病,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个 脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。

错误原因

所以原因就在于,crontab没有去读环境变量,需要再脚本中手动引入环境变量

恍然大悟,于是尝试在脚本中加入了引入环境变量的配置:

#!bin/bash
source /etc/profile
source ~/.bash_profile...

再执行时,问题解决。

原来就是因为crontab在执行脚本时没有读取环境变量,导致执行Flink命令行出错

Linux Crontab定时执行脚本出错,但手动执行脚本正常原因及解决方案相关推荐

  1. Linux crontab 定时执行脚本

    不废话,直接上你要的:  如框框内所示,该命令表示每十分钟执行一次该目录下的脚本文件,即 /home/alan/test1.sh Ok,现在具体讲一下命令为何这么写. 一:什么是crond,什么又是c ...

  2. crontab自定义脚本执行失败,但是手动执行是成功的

    问题:自己写了个kubectl命令删除失败pods的脚本,然后crontab自动执行总是失败. 分析: [root@k8s-master-1 lyf]# which kubectl /usr/loca ...

  3. Linux crontab定时执行任务

    基本格式 :  * * * * * command  分 时 日 月 周 命令  第1列表示分钟1-59 每分钟用*或者 */1表示  第2列表示小时1-23(0表示0点)  第3列表示日期1-31  ...

  4. Linux crontab定时执行任务 命令格式与详细例子

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  5. linux crontab 定时关机,Linux系统使用--定时关机的实现以及crontab命令和文件详解...

    一.前言 为了以后不用再半夜跑回实验室关电脑,昨天中午花了两个小时左右的时间搞了一下如何实现Linux系统的定时关机,结果没搞出来.在老师的指点下得以解决,写一博客分享之. 另,发现现在网上的资料越发 ...

  6. linux crontab 每十秒,linux crontab定时任务5秒、20秒执行一次解决方案

    crontab 每20秒执行一次 方案一: */1 * * * *  sleep 20 && /bin/bash /var/ftp/test.sh */1 * * * *  sleep ...

  7. linux svn e170001 认证失败,jenkins - svn: E170001报错的原因以及解决方案

    1. 什么问题What? 使用Jenkins配置的svn拉取项目,Jenkins报错:svn: E170001; Your credentials to connect to the reposito ...

  8. crontab执行脚本发邮件中文乱码,手动执行没有问题

    今天写了个脚本,定时给指定邮箱发送邮件,手动执行的时候没有问题,但添加到计划任务后发送的邮件就中文乱码,变成一个不知名的附件形式: 上网查了下原因 产生原因: 这是因为Unix/Linux下使用cro ...

  9. linux定时python,linux 中定时执行python脚本

    一.让Python随Linux开机自动运行 准备好要自启的脚本auto.py 用root权限编辑以下文件 sudo vim /ect/rc.local 在exit 0上面编辑启动脚本的命令(编辑rc. ...

最新文章

  1. 应用层下的人脸识别(一):图像获取
  2. 网站建设需遵循用户访问习惯
  3. 微软服务器系统玩游戏,微软将于2020年1月22日关闭Windows7游戏服务器
  4. atan与atan2的区别
  5. Android之AIDL使用详解
  6. 代码在eclipse下不报错,在doc命令行下报错--jar file和runable jar file
  7. react 嵌套渲染_React-Router v5 中文翻译之快速开始
  8. Python之UDP通讯简单例子
  9. python面向对象的含义_Python面向对象(一)
  10. 利用JavaScript生成随机数字!
  11. Kinect for Windows sdk下载 以及安装时错误的解决方案
  12. mysql pxc 安装_MYSQL PXC 集群安装
  13. 原生html5时间组件,amazeui时间组件的实现示例
  14. Isilon上数据是如何存放的?
  15. java程序一维数组能被5整除,JAVA鏈熸湯璇曢闆?鍚瓟妗? - 鐧惧害鏂囧簱
  16. CPU卡指令文件读取算法
  17. 企业微信——定时群机器人布置
  18. 逻辑思维训练和推理思维训练
  19. 小程序滑动点击切换中间大图两边小图
  20. Vue table 点击按钮展开折叠面板

热门文章

  1. 流媒体开发之--HLS--M3U8解析(1)
  2. SIP 请求方法(7)- REFER
  3. python指定目录斜杠方向_Python文件操作---正斜杠与反斜杠
  4. 没事千万别他妈瞎B创业
  5. Android客户端访问https出现问题(Trust anchor for certification path not found)
  6. mysql跨服务器数据增量同步的解决方案
  7. vue数组改变但是页面不更新的解决方案
  8. JavaScript复制二维数组
  9. docker ENTRYPOINT 执行多条命令
  10. python批处理_python写批处理