为什么这个脚本在 cron 中不起作用并生成空输出?

为什么这个脚本在 cron 中不起作用并生成空输出?

为什么此脚本对于 root 或其他用户无法在 cron 中运行并生成空输出?

/tmp/test-1.log
---------------
#!/bin/sh
/bin/echo this is test-1.sh
/bin/date "+%FT%T"

权限没问题

# ls -l /root/test-*
-rwxr-xr-x 1 root root 58 Apr 27 22:48 /root/test-1.sh
#

Cron 行crontab -e。我尝试了这两种方法,创建和附加

55 * * * * /root/test-1.sh &>  /tmp//tmp/test-1.log
58 * * * * /root/test-1.sh &>> /tmp//tmp/test-2.log

并且输出为空,为什么!!!!!!

# date; ls -ld /tmp/test*
Sun Apr 27 22:59:56 CEST 2014
-rw-r--r-- 1 root root 0 Apr 27 22:55 /tmp/test-1.log
-rw-r--r-- 1 root root 0 Apr 27 22:55 /tmp/test-2.log
# 

出了什么问题? 它肯定是一些简单的东西但我找不到它。

顺便说一下,我使用的是 Ubuntu 12.04.4 LTS。

答案1

尝试使用以下命令更改 crontab 中的行:

55 * * * * /bin/sh /root/test-1.sh > /tmp/test-1.log
58 * * * * /bin/sh /root/test.2.sh >> /tmp/test-2.log

这应该可以解决问题。

答案2

您的重定向语法有缺陷。

将您的 crontab 更改为:

55 * * * * /root/test-1.sh >  /tmp/test-1.log
58 * * * * /root/test-1.sh >> /tmp/test-2.log

相关内容