【问题标题】:Cronjob not redirecting outputCronjob 不重定向输出
【发布时间】:2018-04-27 05:42:54
【问题描述】:

我创建了一个 test.sh shell 脚本,我使用 crontab -e 安排了它每 1 分钟执行一次并将输出重定向到一个文件。

test.sh

echo "Printing all Environment Var"
env
echo "Bye Bye"

下面是我的 crontab 的样子

#crontab 
0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59 * * * * sudo su - admiir -c /u01/users/admiir/test.sh > /u01/app/iir/InformaticaIR/iirlog/crontab_launchsh.log

当我运行 ls -ltr 时,时间戳正在更新,但输出文件中没有打印任何内容。

【问题讨论】:

    标签: shell unix cron


    【解决方案1】:

    要运行 cron every minute 并将当前使用的环境保存到文件中,可以使用:

    * * * * * env > ~/cronenv
    

    接下来,您可以启动一个 shell,就像它在 cron 中运行一样:

    env - `cat ~/cronenv` /bin/sh
    

    您可以在这里尝试:

    su - admiir -c "/u01/users/admiir/test.sh > /u01/app/iir/InformaticaIR/iirlog/crontab_launchsh.log"
    

    您可以省略sudo su,只使用su

    一旦您的脚本运行,您就可以更新您的cron

    * * * * * su - admiir -c "/path/to/test.sh > /path/to/out.txt"
    

    您还可以通过以下方式以特定用户身份运行cron

    sudo crontab -u username -e
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2011-06-04
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多