为什么此脚本对于 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