Crontab脚本

时间:2012-09-17 05:43:22

标签: linux shell crontab

我的脚本位于/ u01 / software / aditya / script /目录下。脚本名称是myscript.sh。我能够运行此脚本并获得输出。我想在每天早上6:30为这个脚本设置一个cronjob。我以root用户身份执行此操作。我已经完成了以下步骤但没有获得输出。

crontab -e
30 06 * * * sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log
:wq

但没有在hello.log文件中获得任何更新:(。请帮助....

2 个答案:

答案 0 :(得分:1)

首先检查您的cron日志文件,该文件通常位于/var/log/syslog。应该有类似于

的条目
Sep 17 06:30:01 localhost CRON[17725]: (root) CMD (sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log)

如果没有,您的脚本从未运行过。这可能是由于crontab文件损坏。您应确保此文件始终以换行符结尾,最好在末尾插入多个文件,以便意外删除一个文件不会破坏文件。

如果日志文件中存在此行,则表示您的脚本已运行,但未生成任何输出。当通过cron运行时,由于环境不同,可能会发生这种情况。

另请注意,>>仅重定向 stdout ,而不是 stderr 。如果您想重定向 stderr ,请在该行的末尾添加2>&1

答案 1 :(得分:0)

通常这是由PATH问题引起的。 myscript.sh很有可能调用cron运行的PATH中没有的命令。解决此问题的一些选项是:

  • 确保myscript.sh中的每个命令都是完整路径引用(繁琐)
  • source ~/.bashrc添加到myscript.sh
  • 的顶部
  • 添加export PATH=$PATH:<colon delimited list of paths necessary for myscript.sh to run correctly>

选择上述其中一项,或者您也可以在此处选择其中一个选项:Hourly cron job did not run