[草稿]crontab踩坑记录

[TOC]

场景1:crontab 任务不执行

故障上报

  • 2016.08.16.手动执行crontab脚本ok,但是crontab死活不执行
43 13 * * * nohup java -jar -Dfile.encoding=utf-8 -Xms4096M -Xmx4096M api-gateway > /dev/null 2>&1 &

分析过程

  • 重新配置crontab,主要是将日志输出到指定文件
nohup java -jar -Dfile.encoding=utf-8 -Xms4096M -Xmx4096M api-gateway >> /temp/start.log 2>&1 &
  • 结果输出了一行日志:
nohup: failed to run command 'java': No such file or directory

解决方案

出现这个问题的根本原因是 crontab 不会读取用户 profile 文件中,使用相对路径未获取到 JAVA_HOME 环境变量

  • 方案1. 执行 echo $JAVA_HOME 查看JDK的安装,然后使用绝对路径,比如 /usr/local/java/bin/java
43 13 * * * nohup /usr/local/java/bin/java -jar -Dfile.encoding=utf-8 -Xms4096M -Xmx4096M api-gateway > /dev/null 2>&1 &
  • 方案2. 在crontab中读取profile以解决环境变量的问题
43 13 * * * source /etc/profile; nohup java -jar -Dfile.encoding=utf-8 -Xms4096M -Xmx4096M api-gateway > /dev/null 2>&1 &

场景2:crontab: command not found

  • 故障上报:执行 crontab -l 报错 -bash: crontab: command not found
  • 解决方案:yum安装 yum install -y vixie-cron

场景3:crontab -e 无法编辑

  • 故障上报:编辑 crontab -e 出现无法编辑
  • 解决方案:使用 Ctrl + X 退出,然后执行 select-editor,重新选择 4.
在Select an editor...下面有几个选项,请选 4.
  1. /bin/ed
  2. /bin/nano
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny
Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2023-06-13 09:48:12

results matching ""

    No results matching ""