crontab执行问题

crontab -e

00 11 * * * /atmd/etltasks/gmd/gn-flow.sh 2>&1 > /atmd/etltasks/gmd/gn.log

直接脚本执行时是ok的,但是通过crontab总觉得没有执行,log还是原来的log,原因在于只是把执行脚本的路径写成全路径了,而日志文件的路径却没写完整,而这里crontab并没有报错找不到文件!

如果还是觉得crontab没有工作,可以尝试启动服务:

service crontab start

crontab -l查看定时任务列表

crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)
H:小时(0-23)
D:天(1-31)
m: 月(1-12)
d: 一星期内的天(0~6,0为星期天)

 

crontab执行有hadoop命令的脚本报错,直接执行ok

脚本t2.sh内容

这里定义path路径时,在前面的$PATH里找到了软连接路径 /usr/bin/hadoop,就不再去找下面的

#!/bin/bash
#. ~/.bash_profile
#HADOOP_HOME=/atmd/hadoop
#PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#export PATH

hadoop fs -ls /home/tme | awk '{print $8}'

下面是按照 先cd 再进入:  报错

在脚本里加入hadoop的环境变量重新定义PATH :报错

在脚本里导出PATH的路径 export PATH :报错

在脚本里增加 ~/.bash_profile  : ok (里面有定义环境变量)


HADOOP_HOME=/atmd/hadoop
SQOOP_HOME=/atmd/sqoop
export JAVA_HOME HADOOP_HOME ZOOKEEPER_HOME SQOOP_HOME

PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SQOOP_HOME/bin:$ZOOKEEPER_HOME/bin:/atmd/node/bin:/atmd/
python2/bin:$PATH:$HOME/bin
export PYTHONPATH=/atmd/python3_env

export REDASH_LOG_LEVEL="INFO"
export REDASH_REDIS_URL=redis://localhost:6379/0
export REDASH_DATABASE_URL="postgresql:///redash"
export REDASH_COOKIE_SECRET=ogEs7A15i9jXxTZSouYwg8M9B1vVCHXe

export PATH

错误信息:

/usr/bin/hadoop: line 27: /usr/bin/../libexec/hadoop-config.sh: No such file or directory
/usr/bin/hadoop: line 166: exec: : not found

其实上面的写法没有错,错在这里建立了软链接

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值