Cronjob没有重定向输出

时间:2017-11-14 10:13:10

标签: shell unix cron

我创建了一个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时,时间戳会更新,但输出文件中没有打印任何内容。

1 个答案:

答案 0 :(得分:2)

要运行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