【发布时间】:2013-11-26 09:53:53
【问题描述】:
我有以下 bash 脚本:
#!/bin/bash
src="/home/user/testingscript"
for dir in $(ls "$src")
do
find ${src}/${dir}/ -type f -mtime +31 delete
done
如果我从终端执行它,它运行良好,但是一旦我像这样将它放在 crontab 中:
* * * * * /bin/bash /home/user/script/mailboxclean.sh >> /home/user/mailboxcleanup.log 2>&1
或作为:
* * * * * /home/user/script/mailboxclean.sh
它没有运行。
我在 syslog 中没有看到任何反馈,除了脚本已执行,并且在我正在重定向的 mailboxcleanup.log 中,我看到以下内容并没有真正帮助:
/home/user/mailboxcleanup.log: 1: /home/user/mailboxcleanup.log: /bin/sh:: not found
有什么想法吗?
谢谢
【问题讨论】:
-
奇怪的是你有
#!/bin/bash,你用/bin/bash打电话然后你收到/bin/sh错误信息。 -
与问题无关,但应将
for dir in $(ls "$src"); do find ${src}/${dir}/ -type f ....改为for dir in "${src}"/*/ do ; find "${dir}" -type f .... -
@fedorqui:也许 bash 不在 /bin 中? ... ^^ 那么 sh 会抱怨找不到它来执行脚本? OR 这是一个 /etc/crontab 并且 "/bin/bash" 被视为用户,无法找到并且一些奇怪的后果是错误消息。
-
不应该是
-delete而不是delete吗?