crontab问题

来源:互联网 发布:qq群自定义群地址优化 编辑:程序博客网 时间:2024/05/20 03:42

crontab的特点:PATH不全和无终端。

1. 问题:在使用crontab时候脚本无法正常运行,手动可以执行。
原因:Crontab执行时不会读取用户的环境变量,因此,在编写脚本时要声明环境变量,防止发生此类错误。
解决:

a.  在定时任务中,加上source  /etc/profile。eg: “source /etc/profile; * */1 * * * /root/uploadtoHadoop.sh“

b.  在脚本开始中,加上source  /etc/profile。

c.  在脚本中使用到了hadoop命令,所以在脚本的最开始加入如下命令:
#!/bin/bash
export HADOOP_HOME=/home/hadoop/hadoop-0.20.2-CDH3B4
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH



2. 问题:在crontab中,指定每小时运行脚本,“* */1 * * * /root/uploadtoHadoop.sh“ 无法生效。
原因:有两种情况:
a. 不是所有的系统都支持*/1这种写法。
b. 看看文件权限,或者环境变量。
解决:可以改成:"* 0-59/1 * * * /root/uploadtoHadoop.sh"。

原创粉丝点击