DataX踩坑2 | 定时任务crontab不执行或报错:/bin/sh: java: command not found

前面两天写了一个DataX的增量同步脚本,今天检查了一下发现定时任务没有执行成功,数据并没有同步。以下为排查问题和解决方法。


一、定时任务crontab不执行

脚本(测试用的可以设为每分钟一次:*/1 * * * *):

0 5 * * * /opt/datax/bin/incrSyncTask.sh >/dev/null 2>&1
1.查看crontab日志,看是否成功执行了脚本:
tail -f /var/log/cron

在这里插入图片描述

报错:

Oct 28 09:32:10 izwz9j58zzz42e5r70ct5oz crontab[18564]: (root) REPLACE (root)
Oct 28 09:32:10 izwz9j58zzz42e5r70ct5oz crontab[18564]: (root) END EDIT (root)
Oct 28 09:33:01 izwz9j58zzz42e5r70ct5oz crond[513]: (root) RELOAD (/var/spool/cron/root)
Oct 28 09:33:01 izwz9j58zzz42e5r70ct5oz CROND[19639]: (root) CMD (/opt/datax/bin/incrSyncTask_prod.sh)
Oct 28 09:33:01 izwz9j58zzz42e5r70ct5oz CROND[19638]: (root) MAIL (mailed 191 bytes of output but got status 0x004b#012)

这里表示发送邮件到mail邮箱失败,要重新配置,查看第三步

2.查看mail邮箱日志
tail -f /var/log/maillog

在这里插入图片描述
还是报错:
sendmail: fatal: parameter inet_interfaces: no local interface found for ::1


3.解决方法

修改/etc/postfix/main.cf文件中的inet_interfaces参数inet_interfaces = all即可

vim /etc/postfix/main.cf

下面是原来默认的值:
在这里插入图片描述

修改保存后,就可以看到定时任务不会报错了

二、crontab定时任务执行Shell脚本报错:/bin/sh: java: command not found
报错:/bin/sh: java: command not found
解决方法:

在shell脚本中加入下面的参数即可:

. /etc/profile

在这里插入图片描述

加入后定时任务就可以正常的运行shell脚本了。

相关文章


欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!
在这里插入图片描述


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值